4.18. Bmcv
Bmcv封装了常用的图像处理接口,支持硬件加速。
4.18.1. 构造函数Bmcv()
初始化Bmcv
- 接口形式:
Bmcv(Handle handle);
参数说明:
handle: Handle
指定Bmcv使用的设备句柄。
4.18.2. bm_image_to_tensor
将BMImage/BMImageArray转换为Tensor。
- 接口形式1:
void bm_image_to_tensor(BMImage &img, Tensor &tensor); Tensor bm_image_to_tensor(BMImage &img);
参数说明1:
image: BMImage
需要转换的图像数据。
tensor: Tensor
转换后的Tensor。
返回值说明1:
tensor: Tensor
返回转换后的Tensor。
- 接口形式2:
def bm_image_to_tensor(self, image: BMImageArray, tensor) -> Tensor
参数说明2:
image: BMImageArray
输入参数。需要转换的图像数据。
tensor: Tensor
输出参数。转换后的Tensor。
4.18.3. tensor_to_bm_image
将Tensor转换为BMImage/BMImageArray。
- 接口形式1:
void tensor_to_bm_image(Tensor &tensor, BMImage &img); BMImage tensor_to_bm_image(Tensor &tensor);
参数说明1:
tensor: Tensor
输入参数。待转换的Tensor。
img : BMImage
转换后的图像。
返回值说明1:
image : BMImage
返回转换后的图像。
- 接口形式2:
template<std::size_t N> void bm_image_to_tensor (BMImageArray<N> &imgs, Tensor &tensor); template<std::size_t N> Tensor bm_image_to_tensor (BMImageArray<N> &imgs);
参数说明2:
tensor: Tensor
输入参数。待转换的Tensor。
img : BMImage | BMImageArray
输出参数。返回转换后的图像。
返回值说明2:
image : Tensor
返回转换后的tensor。
4.18.4. crop_and_resize
对图片进行裁剪并resize。
- 接口形式:
int crop_and_resize( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage crop_and_resize( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int crop_and_resize( BMImageArray<N> &input, BMImageArray<N> &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> crop_and_resize( BMImageArray<N> &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.5. crop
对图像进行裁剪。
- 接口形式:
int crop( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h); BMImage crop( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h); template<std::size_t N> int crop( BMImageArray<N> &input, BMImageArray<N> &output, int crop_x0, int crop_y0, int crop_w, int crop_h); template<std::size_t N> BMImageArray<N> crop( BMImageArray<N> &input, int crop_x0, int crop_y0, int crop_w, int crop_h);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.6. resize
对图像进行resize。
- 接口形式:
int resize( BMImage &input, BMImage &output, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage resize( BMImage &input, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int resize( BMImageArray<N> &input, BMImageArray<N> &output, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> resize( BMImageArray<N> &input, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.7. vpp_crop_and_resize
利用VPP硬件加速图片的裁剪与resize。
- 接口形式:
int vpp_crop_and_resize( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage vpp_crop_and_resize( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int vpp_crop_and_resize( BMImageArray<N> &input, BMImageArray<N> &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> vpp_crop_and_resize( BMImageArray<N> &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.8. vpp_crop_and_resize_padding
利用VPP硬件加速图片的裁剪与resize,并padding到指定大小。
- 接口形式:
int vpp_crop_and_resize_padding( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage vpp_crop_and_resize_padding( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int vpp_crop_and_resize_padding( BMImageArray<N> &input, BMImageArray<N> &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> vpp_crop_and_resize_padding( BMImageArray<N> &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
padding : PaddingAtrr
padding的配置信息。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.9. vpp_crop
利用VPP硬件加速图片的裁剪。
- 接口形式:
int vpp_crop( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h); BMImage vpp_crop( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h); template<std::size_t N> int vpp_crop( BMImageArray<N> &input, BMImageArray<N> &output, int crop_x0, int crop_y0, int crop_w, int crop_h); template<std::size_t N> BMImageArray<N> vpp_crop( BMImageArray<N> &input, int crop_x0, int crop_y0, int crop_w, int crop_h);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.10. vpp_resize
利用VPP硬件加速图片的resize,采用最近邻插值算法。
- 接口形式1:
int vpp_resize( BMImage &input, BMImage &output, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage vpp_resize( BMImage &input, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int vpp_resize( BMImageArray<N> &input, BMImageArray<N> &output, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> vpp_resize( BMImageArray<N> &input, int resize_w, int resize_h, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.11. vpp_resize_padding
利用VPP硬件加速图片的resize,并padding。
- 接口形式:
int vpp_resize_padding( BMImage &input, BMImage &output, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage vpp_resize_padding( BMImage &input, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> int vpp_resize_padding( BMImageArray<N> &input, BMImageArray<N> &output, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); template<std::size_t N> BMImageArray<N> vpp_resize_padding( BMImageArray<N> &input, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
padding : PaddingAtrr
padding的配置信息。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
resize_alg : bmcv_resize_algorithm
图像resize的插值算法,默认为bmcv_resize_algorithm.BMCV_INTER_NEAREST
4.18.12. warp
对图像进行仿射变换。
- 接口形式:
int warp( BMImage &input, BMImage &output, const std::pair< std::tuple<float, float, float>, std::tuple<float, float, float>> &matrix); BMImage warp( BMImage &input, const std::pair< std::tuple<float, float, float>, std::tuple<float, float, float>> &matrix); template<std::size_t N> int warp( BMImageArray<N> &input, BMImageArray<N> &output, const std::array< std::pair< std::tuple<float, float, float>, std::tuple<float, float, float>>, N> &matrix); template<std::size_t N> BMImageArray<N> warp( BMImageArray<N> &input, const std::array< std::pair< std::tuple<float, float, float>, std::tuple<float, float, float>>, N> &matrix);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
output : BMImage | BMImageArray
处理后的图像或图像数组。
- matrix: std::pair<
std::tuple<float, float, float>, std::tuple<float, float, float> >
2x3的仿射变换矩阵。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.13. convert_to
对图像进行线性变换。
- 接口形式:
int convert_to( BMImage &input, BMImage &output, const std::tuple< std::pair<float, float>, std::pair<float, float>, std::pair<float, float>> &alpha_beta); BMImage convert_to( BMImage &input, const std::tuple< std::pair<float, float>, std::pair<float, float>, std::pair<float, float>> &alpha_beta); template<std::size_t N> int convert_to( BMImageArray<N> &input, BMImageArray<N> &output, const std::tuple< std::pair<float, float>, std::pair<float, float>, std::pair<float, float>> &alpha_beta); template<std::size_t N> BMImageArray<N> convert_to( BMImageArray<N> &input, const std::tuple< std::pair<float, float>, std::pair<float, float>, std::pair<float, float>> &alpha_beta);
参数说明:
input : BMImage | BMImageArray
待处理的图像或图像数组。
- alpha_beta: std::tuple<
std::pair<float, float>, std::pair<float, float>, std::pair<float, float> >
分别为三个通道线性变换的系数((a0, b0), (a1, b1), (a2, b2))。
output : BMImage | BMImageArray
输出参数。处理后的图像或图像数组。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回处理后的图像或图像数组。
4.18.14. yuv2bgr
将图像的格式从YUV转换为BGR。
- 接口形式:
int yuv2bgr( BMImage &input, BMImage &output); BMImage yuv2bgr(BMImage &input);
参数说明:
input : BMImage | BMImageArray
待转换的图像。
返回值说明:
ret: int
返回0代表成功,其他代表失败。
output : BMImage | BMImageArray
返回转换后的图像。
4.18.15. rectangle
在图像上画一个矩形框。
- 接口形式:
int rectangle( BMImage &image, int x0, int y0, int w, int h, const std::tuple<int, int, int> &color, int thickness=1);
参数说明:
image : BMImage
待画框的图像。
x0 : int
矩形框在x轴上的起点。
y0 : int
矩形框在y轴上的起点。
w : int
矩形框的宽度。
h : int
矩形框的高度。
color : tuple
矩形框的颜色。
thickness : int
矩形框线条的粗细。
返回值说明:
如果画框成功返回0,否则返回非0值。
4.18.16. imwrite
将图像保存在特定文件。
- 接口形式:
int imwrite( const std::string &filename, BMImage &image);
参数说明:
file_name : string
文件的名称。
output : BMImage
需要保存的图像。
返回值说明:
process_status : int
如果保存成功返回0,否则返回非0值。
4.18.17. get_handle
获取Bmcv中的设备句柄Handle。
- 接口形式:
Handle get_handle();
返回值说明:
handle: Handle
Bmcv中的设备句柄Handle。
4.18.18. crop_and_resize_padding
对图像进行裁剪并resize,然后padding。
- 接口形式:
int vpp_crop_and_resize_padding( BMImage &input, BMImage &output, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST); BMImage vpp_crop_and_resize_padding( BMImage &input, int crop_x0, int crop_y0, int crop_w, int crop_h, int resize_w, int resize_h, PaddingAtrr &padding_in, bmcv_resize_algorithm resize_alg = BMCV_INTER_NEAREST);
参数说明:
input : BMImage
待处理的图像。
output : BMImage
处理后的图像。
crop_x0 : int
裁剪窗口在x轴上的起始点。
crop_y0 : int
裁剪窗口在y轴上的起始点。
crop_w : int
裁剪窗口的宽。
crop_h : int
裁剪窗口的高。
resize_w : int
图像resize的目标宽度。
resize_h : int
图像resize的目标高度。
padding : PaddingAtrr
padding的配置信息。
resize_alg : bmcv_resize_algorithm
resize采用的插值算法。
返回值说明:
process_status : int
如果保存成功返回0,否则返回非0值。
output : BMImage
返回处理后的图像。
4.18.19. rectangle_
在图像上画一个矩形框。
- 接口形式:
int rectangle_( const bm_image &image, int x0, int y0, int w, int h, const std::tuple<int, int, int> &color, // BGR int thickness=1);
参数说明:
image : bm_image
待画框的图像。
x0 : int
矩形框在x轴上的起点。
y0 : int
矩形框在y轴上的起点。
w : int
矩形框的宽度。
h : int
矩形框的高度。
color : tuple
矩形框的颜色。
thickness : int
矩形框线条的粗细。
返回值说明:
如果画框成功返回0,否则返回非0值。
4.18.20. imwrite_
将图像保存在指定的文件。
- 接口形式:
int imwrite_( const std::string &filename, const bm_image &image);
参数说明:
file_name : string
文件的名称。
output : bm_image
需要保存的图像。
返回值说明:
process_status : int
如果保存成功返回0,否则返回非0值。
4.18.21. convert_format
将图像的格式转换为output中的格式,并拷贝到output。
- 接口形式1:
int convert_format( BMImage &input, BMImage &output );
参数说明1:
input : BMImage
输入参数。待转换的图像。
output : BMImage
输出参数。将input中的图像转化为output的图像格式并拷贝到output。
接口形式2:
将一张图像转换成目标格式。
BMImage convert_format( BMImage &input, bm_image_format_ext image_format = FORMAT_BGR_PLANAR );
参数说明2:
input : BMImage
待转换的图像。
image_format : bm_image_format_ext
转换的目标格式。
返回值说明2:
output : BMImage
返回转换后的图像。
4.18.22. vpp_convert_format
利用VPP硬件加速图片的格式转换。
- 接口形式1:
int vpp_convert_format( BMImage &input, BMImage &output );
参数说明1:
input : BMImage
输入参数。待转换的图像。
output : BMImage
输出参数。将input中的图像转化为output的图像格式并拷贝到output。
接口形式2:
将一张图像转换成目标格式。
BMImage vpp_convert_format( BMImage &input, bm_image_format_ext image_format = FORMAT_BGR_PLANAR );
参数说明2:
input : BMImage
待转换的图像。
image_format : bm_image_format_ext
转换的目标格式。
返回值说明2:
output : BMImage
返回转换后的图像。
4.18.23. putText
在图像上添加text。
- 接口形式:
int putText( const BMImage &image, const std::string &text, int x, int y, const std::tuple<int, int, int> &color, // BGR float fontScale, int thickness=1 );
参数说明:
input : BMImage
待处理的图像。
text: string
需要添加的文本。
x: int
添加的起始点位置。
y: int
添加的起始点位置。
color : tuple
字体的颜色。
fontScale: int
字号的大小。
thickness : int
字体的粗细。
返回值说明:
process_status : int
如果处理成功返回0,否则返回非0值。
4.18.24. putText_
- 接口形式:
int putText_( const bm_image &image, const std::string &text, int x, int y, const std::tuple<int, int, int> &color, // BGR float fontScale, int thickness=1 );
参数说明:
input : bm_image
待处理的图像。
text: string
需要添加的文本。
x: int
添加的起始点位置。
y: int
添加的起始点位置。
color : tuple
字体的颜色。
fontScale: int
字号的大小。
thickness : int
字体的粗细。
返回值说明:
process_status : int
如果处理成功返回0,否则返回非0值。
4.18.25. image_add_weighted
将两张图像按不同的权重相加。
- 接口形式1:
int image_add_weighted( BMImage &input1, float alpha, BMImage &input2, float beta, float gamma, BMImage &output );
参数说明1:
input0 : BMImage
输入参数。待处理的图像0。
alpha : float
输入参数。两张图像相加的权重alpha
input1 : BMImage
输入参数。待处理的图像1。
beta : float
输入参数。两张图像相加的权重beta
gamma : float
输入参数。两张图像相加的权重gamma
output: BMImage
输出参数。相加后的图像output = input1 * alpha + input2 * beta + gamma
- 接口形式2:
BMImage image_add_weighted( BMImage &input1, float alpha, BMImage &input2, float beta, float gamma );
参数说明2:
input0 : BMImage
输入参数。待处理的图像0。
alpha : float
输入参数。两张图像相加的权重alpha
input1 : BMImage
输入参数。待处理的图像1。
beta : float
输入参数。两张图像相加的权重beta
gamma : float
输入参数。两张图像相加的权重gamma
返回值说明2:
output: BMImage
返回相加后的图像output = input1 * alpha + input2 * beta + gamma
4.18.26. image_copy_to
进行图像间的数据拷贝
- 接口形式:
int image_copy_to(BMImage &input, BMImage &output, int start_x = 0, int start_y = 0); template<std::size_t N> int image_copy_to(BMImageArray<N> &input, BMImageArray<N> &output, int start_x = 0, int start_y = 0);
参数说明:
input: BMImage|BMImageArray
输入参数。待拷贝的BMImage或BMImageArray。
output: BMImage|BMImageArray
输出参数。拷贝后的BMImage或BMImageArray
start_x: int
输入参数。拷贝到目标图像的起始点。
start_y: int
输入参数。拷贝到目标图像的起始点。
4.18.27. image_copy_to_padding
进行input和output间的图像数据拷贝并padding。
- 接口形式:
int image_copy_to_padding(BMImage &input, BMImage &output, unsigned int padding_r, unsigned int padding_g, unsigned int padding_b, int start_x = 0, int start_y = 0); template<std::size_t N> int image_copy_to_padding(BMImageArray<N> &input, BMImageArray<N> &output, unsigned int padding_r, unsigned int padding_g, unsigned int padding_b, int start_x = 0, int start_y = 0);
参数说明:
input: BMImage|BMImageArray
输入参数。待拷贝的BMImage或BMImageArray。
output: BMImage|BMImageArray
输出参数。拷贝后的BMImage或BMImageArray
padding_r: int
输入参数。R通道的padding值。
padding_g: int
输入参数。G通道的padding值。
padding_b: int
输入参数。B通道的padding值。
start_x: int
输入参数。拷贝到目标图像的起始点。
start_y: int
输入参数。拷贝到目标图像的起始点。
4.18.28. nms
利用智能视觉深度学习处理器进行NMS
- 接口形式:
nms_proposal_t* nms( face_rect_t *input_proposal, int proposal_size, float threshold);
参数说明:
input_proposal: face_rect_t
数据起始地址。
proposal_size: int
待处理的检测框数据的大小。
threshold: float
nms的阈值。
返回值说明:
result: nms_proposal_t
返回NMS后的检测框数组。
4.18.29. drawPoint
在图像上画点。
- 接口形式:
int drawPoint( const BMImage &image, std::pair<int,int> center, std::tuple<unsigned char, unsigned char, unsigned char> color, // BGR int radius);
参数说明:
image: BMImage
输入图像,在该BMImage上直接画点作为输出。
center: std::pair<int,int>
点的中心坐标。
color: std::tuple<unsigned char, unsigned char, unsigned char>
点的颜色。
radius: int
点的半径。
返回值说明
如果画点成功返回0,否则返回非0值。
4.18.30. drawPoint_
在图像上画点。
- 接口形式:
int drawPoint_( const bm_image &image, std::pair<int,int> center, std::tuple<unsigned char, unsigned char, unsigned char> color, // BGR int radius);
参数说明:
image: bm_image
输入图像,在该BMImage上直接画点作为输出。
center: std::pair<int,int>
点的中心坐标。
color: std::tuple<unsigned char, unsigned char, unsigned char>
点的颜色。
radius: int
点的半径。
返回值说明
如果画点成功返回0,否则返回非0值。
4.18.31. warp_perspective
对图像进行透视变换。
- 接口形式:
BMImage warp_perspective( BMImage &input, const std::tuple< std::pair<int,int>, std::pair<int,int>, std::pair<int,int>, std::pair<int,int>> &coordinate, int output_width, int output_height, bm_image_format_ext format = FORMAT_BGR_PLANAR, bm_image_data_format_ext dtype = DATA_TYPE_EXT_1N_BYTE, int use_bilinear = 0);
参数说明:
input: BMImage
待处理的图像。
- coordinate: std::tuple<
std::pair<int,int>, std::pair<int,int>, std::pair<int,int>, std::pair<int,int> >
变换区域的四顶点原始坐标。
例如((left_top.x, left_top.y), (right_top.x, right_top.y), (left_bottom.x, left_bottom.y), (right_bottom.x, right_bottom.y))
output_width: int
输出图像的宽。
output_height: int
输出图像的高。
format: bm_image_format_ext
输出图像的格式。
dtype: bm_image_data_format_ext
输出图像的数据类型。
use_bilinear: int
是否使用双线性插值。
返回值说明:
output: BMImage
输出变换后的图像。
4.18.32. get_bm_data_type
将ImgDtype转换为Dtype
- 接口形式:
bm_data_type_t get_bm_data_type(bm_image_data_format_ext fmt);
参数说明:
fmt: bm_image_data_format_ext
需要转换的类型。
返回值说明:
ret: bm_data_type_t
转换后的类型。
4.18.33. get_bm_image_data_format
将Dtype转换为ImgDtype。
- 接口形式:
bm_image_data_format_ext get_bm_image_data_format(bm_data_type_t dtype);
参数说明:
dtype: bm_data_type_t
需要转换的Dtype
返回值说明:
ret: bm_image_data_format_ext
返回转换后的类型。
4.18.34. imdecode
从内存中载入图像到BMImage中。
- 接口形式:
BMImage imdecode(const void* data_ptr, size_t data_size);
参数说明:
data_ptr: void*
数据起始地址
data_size: bytes
数据长度
返回值说明:
ret: BMImage
返回解码后的图像。
4.18.35. imencode
编码一张图片,并返回编码后的数据。
- 接口形式1:
bool Bmcv::imencode(std::string& ext, bm_image &img, std::vector<u_char>& buf)
- 接口形式2:
bool Bmcv::imencode(std::string& ext, BMImage &img, std::vector<u_char>& buf)
参数说明:
ext: string
输入参数。图片编码格式。“.jpg”, “.png” 等。
image: bm_image/BMImage
输入参数。输入图片,只支持FORMAT_BGR_PACKET,DATA_TYPE_EXT_1N_BYTE的图片。
buf: std::vector<u_char>
输出参数。编码后放在系统内存中的数据。
返回值说明:
ret: bool
编码成功时返回0,失败时返回1。
4.18.36. fft
实现对Tensor的快速傅里叶变换。
- 接口形式:
std::vector<Tensor> fft(bool forward, Tensor &input_real); std::vector<Tensor> fft(bool forward, Tensor &input_real, Tensor &input_imag);
参数说明:
forward: bool
是否进行正向迁移。
input_real: Tensor
输入的实数部分。
input_imag: Tensor
输入的虚数部分。
返回值说明:
ret: std::vector<Tensor>
返回输出的实数部分和虚数部分。
4.18.37. convert_yuv420p_to_gray
将YUV420P格式的图片转为灰度图。
- 接口形式1:
int convert_yuv420p_to_gray(BMImage& input, BMImage& output);
参数说明1:
input : BMImage
输入参数。待转换的图像。
output : BMImage
输出参数。转换后的图像。
接口形式2:
将YUV420P格式的图片转为灰度图。
int convert_yuv420p_to_gray_(bm_image& input, bm_image& output);
参数说明2:
input : bm_image
待转换的图像。
output : bm_image
转换后的图像。