acl.himpi.vpc_batch_crop_resize_make_border

c函数原型

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);

Python函数

task_id, ret = acl.himpi.vpc_batch_crop_resize_make_border(chn, source_pic, pic_num, crop_resize_make_border_info, count, milli_sec)

函数功能

acl.himpi.vpc_crop_resize_make_border的扩展接口,支持批处理模式。可输入多张原图,按指定区域从每张输入图片中抠出一个或多个子图,对子图缩放后,再将子图贴到每张目标图片(目标图片的数量与子图数量保持一致)的指定位置,区域之外按指定类型填充。

昇腾310 AI处理器,当前版本该接口预留。

昇腾910 AI处理器,当前版本该接口预留。

输入说明

chn:图片处理通道号,取值范围:[0, 255]。

source_pic:原始图片信息的指针数组。输入在4096*4096~8192*8192(包括8192)时,支持格式如下
  • YUV420 semi-planar/YVU420 semi-planar
  • YUV422 semi-planar/YVU422 semi-planar
  • YUV400
  • YUV444 semi-planar/YVU444 semi-planar
  • YUYV422 packed/YVYU422 packed/UYVY422 packed/VYUY422 packed

pic_num:原始图片数量,与source_pic数组长度、count数组长度保持一致。

crop_resize_make_border_info:抠图缩放填充的信息字典,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。当前填充类型仅支持HI_BORDER_CONSTANT,可以Padding到4096*4096。

count:每张原图抠图缩放填充的图片数量,count数组内元素值之和等于crop_resize_make_border_info数组的长度。count数组内元素值之和的取值范围[1,256]。

milli_sec:超时时间配置,单位是毫秒,取值范围如下:
  • -1:阻塞方式
  • 0:非阻塞方式
  • >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

ret

task_id:此次任务分配的ID,用来区分任务。

使用说明

由于hi_vpc_crop_resize_border_region字典内容比较丰富,使用者可以自由组合功能。例如:

  • 若是crop的宽高和原图宽高一致,则不进行crop。
  • 若是crop的宽高与resize之后的宽高一致,则不进行缩放。
  • 若是crop、resize之后的宽高和目标图片的宽高一致,并且左上角坐标等于(0,0),则不进行填充。

注意事项

  • 通道号不能超出最大的通道号范围。
  • 接口是异步接口。
  • 关于等比例缩放功能的描述及约束请参见VPC功能

使用场景

需要批量对多张输入图片进行抠图、缩放、填充三种操作时,可以使用本接口。