acl.himpi.vpc_crop_resize_make_border

c函数原型

hi_s32 hi_mpi_vpc_crop_resize_make_border(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, 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_crop_resize_make_border(chn, source_pic, crop_resize_make_border_info, count, milli_sec)

函数功能

按指定区域从一张输入图片中抠出一个或多个子图,对子图缩放后,再将每个子图按指定类型填充,作为一张或多张目标图片输出,主要用于等比例缩放场景。异步接口。

输入说明

  • chn:int,图片处理通道号。

    该参数的取值范围:[0, 128),通道总数最多128。

  • source_pic:原始图片信息。
  • crop_resize_make_border_info

    抠图缩放填充的图片信息数组,需要用户设置抠图、缩放、填充信息以及目标图片的内存地址,VPC将抠图缩放填充后的结果数据存放在用户指定的内存地址中。如果多个填充结果的数据都指向同一个内存地址,后一次的结果数据会覆盖前一次的结果数据,导致输出图片跟预期不一致。

    当前填充类型仅支持HI_BORDER_CONSTANT和HI_BORDER_REPLICATE,可以Padding到4096*4096。crop_resize_make_border_info数组的长度与count参数值保持一致。

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

返回值说明

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

注意事项

参考资源

约束说明

昇腾AI处理器

约束

Atlas 200/500 A2推理产品

  • 关于图片分辨率、图片格式、宽高对齐、内存等约束,请参见约束说明
  • 设置fx/fy之后,缩放后的图片的分辨率必须在[10*6~16384*16384]范围内,否则返回错误。
  • 由于hi_vpc_crop_resize_border_region结构体内容比较丰富,使用者可以自由组合功能。但存在一些约束,例如:若是crop的宽高与resize之后的宽高一致,则不进行缩放;若偏移值为0,则不进行填充。
  • 使用本接口实现等比例缩放功能时,相关的描述及约束请参见抠图、贴图约束
  • 由于YUV格式图像下采样约束,当输出图片格式为YUV420SP或YUV422SP格式时,需注意:
    • 对于YUV420SP输出格式,上下左右填充的尺寸建议为偶数;
    • 对于YUV422SP输出格式,左右填充的尺寸建议为偶数。