hi_mpi_vpc_batch_crop_resize_make_border
函数功能
hi_mpi_vpc_crop_resize_make_border的扩展接口,支持批处理模式。可输入多张原图,按指定区域从每张输入图片中抠出一个或多个子图,对子图缩放后,再将子图贴到每张目标图片(目标图片的数量与子图数量保持一致)的指定位置,区域之外按指定类型填充。异步接口。
Atlas 200/300/500 推理产品,当前版本不支持该接口。
Atlas 训练系列产品,当前版本不支持该接口。
约束说明
- 由于hi_vpc_crop_resize_border_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些约束,例如:
- 若是crop的宽高和原图宽高一致,则不进行crop。
- 若是crop的宽高与resize之后的宽高一致,则不进行缩放。
- 若是crop、resize之后的宽高和目标图片的宽高一致,并且左上角坐标等于(0,0),则不进行填充。
- 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束。
- 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
- 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
- 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。
函数原型
hi_s32 hi_mpi_vpc_batch_crop_resize_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic[], hi_u32 pic_num, hi_vpc_crop_resize_border_region crop_resize_make_border_info[], hi_u32 count[], hi_u32 *task_id, hi_s32 milli_sec)
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
chn |
输入 |
图片处理通道号。 该参数的取值范围:[0, 256),通道总数最多256。 |
source_pic |
输入 |
原始图片信息的指针数组。 输入图片分辨率在10*6~4096*4096(包括4096)范围内时,支持图片格式、宽高对齐、内存约束处说明的输入图片格式。 输入图片分辨率在4096*4096~8192*8192(包括8192)范围内时,输入图片格式支持hi_pixel_format枚举值中的如下枚举项: HI_PIXEL_FORMAT_YUV_400 = 0, // YUV400 8bit HI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // YUV420SP NV12 8bit HI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // YUV420SP NV21 8bit HI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // YUV422SP 8bit HI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // YVU422SP 8bit HI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // YUV444SP 8bit HI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // YVU444SP 8bit HI_PIXEL_FORMAT_YUYV_PACKED_422 = 7, // YUV422Packed YUYV 8bit HI_PIXEL_FORMAT_UYVY_PACKED_422 = 8, // YUV422Packed UYVY 8bit HI_PIXEL_FORMAT_YVYU_PACKED_422 = 9, // YUV422Packed YVYU 8bit HI_PIXEL_FORMAT_VYUY_PACKED_422 = 10, // YUV422Packed VYUY 8bit |
pic_num |
输入 |
原始图片数量,与source_pic数组长度、count数组长度保持一致。 |
crop_resize_make_border_info |
输入 |
抠图缩放填充的信息结构体,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。当前填充类型仅支持HI_BORDER_CONSTANT和HI_BORDER_REPLICATE,可以填充到4096*4096。 |
count |
输入 |
每张原图抠图缩放填充的图片数量,count数组内元素值之和等于crop_resize_make_border_info数组的长度。count数组内元素值之和的取值范围[1,256]。 |
task_id |
输出 |
任务ID的指针,用来区分任务。 |
milli_sec |
输入 |
超时时间配置,单位是毫秒,取值范围如下:
|
返回值说明
- 0:成功
- 非0:失败,参见VPC图像处理返回码