---
title: hi_mpi_vpc_batch_crop_resize_make_border
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/dvpp/aclcppdevg_03_0654.html
sourcePath: /source/zh/canncommercial/900/API/dvpp/aclcppdevg_03_0654.html
indexId: 328e5136a16c3fdfdba7796da9fcbde72f608fe59fac99066aaf5cc21df5c3cc62
---
# hi_mpi_vpc_batch_crop_resize_make_border

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

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


#### 函数原型

```
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 | 输入 | 图片处理通道号。 Atlas 350 加速卡，该参数的取值范围：[0, 256)，通道总数最多256。 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 Atlas 200I/500 A2 推理产品 ，该参数的取值范围：[0, 128)，通道总数最多128。 Atlas 推理系列产品 ，该参数的取值范围：[0, 256)，通道总数最多256。 |
| source\_pic | 输入 | 原始图片信息的指针数组。 |
| 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 | 输入 | 超时时间配置，单位是毫秒，取值范围如下： \-1：阻塞方式 0：非阻塞方式 >0：超时方式，配置具体的超时时间。超时时间受操作系统影响，一般偏差在操作系统的一个时间片内，例如，操作系统的一个时间片为4ms，用户设置的milli\_sec参数值为1，则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下，超时时间仍可能存在波动。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  VPC图像处理返回码


#### 约束说明

| 型号 | 约束 |
| --- | --- |
| Atlas 推理系列产品 | 关于输入图片分辨率、图片格式： 输入图片分辨率在[10\*6, 4096\*4096]范围内时，支持图片格式、宽高对齐、内存约束处说明的输入图片格式。 输入图片的宽在(4096, 8192]或高在(4096, 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 关于各图片格式的宽高对齐、内存大小约束，请参见图片格式、宽高对齐、内存约束。 关于输出图片分辨率、图片格式、宽高对齐、内存大小约束请参见VPC约束说明。 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时，在经过本接口缩放处理后，A分量值会变为0。 由于hi\_vpc\_crop\_resize\_border\_region结构体内容比较丰富，使用者可以自由组合功能。但存在一些通用约束，例如： 若是crop的宽高和原图宽高一致，则不进行crop。 若是crop的宽高与resize之后的宽高一致，则不进行缩放。 若是crop、resize之后的宽高和目标图片的宽高一致，并且左上角坐标等于(0,0)，则不进行填充。 使用本接口实现等比例缩放功能时，相关的描述及约束请参见抠图、贴图约束。 由于YUV格式图像下采样约束，当输出图片格式为YUV420SP或YUV422SP格式时，需注意： 对于YUV420SP输出格式，上下左右填充的尺寸建议为偶数； 对于YUV422SP输出格式，左右填充的尺寸建议为偶数。 |
| Atlas 350 加速卡 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 Atlas 200I/500 A2 推理产品 | 关于图片分辨率、各图片格式的宽高对齐、内存大小约束，请参见VPC约束说明。 当输入、输出图片格式都为ARGB8888、ABGR8888、RGBA8888、BGRA8888格式时，在经过本接口缩放处理后，A分量值会变为0。 由于hi\_vpc\_crop\_resize\_border\_region结构体内容比较丰富，使用者可以自由组合功能。但存在一些通用约束，例如： 若是crop的宽高和原图宽高一致，则不进行crop。 若是crop的宽高与resize之后的宽高一致，则不进行缩放。 若是crop、resize之后的宽高和目标图片的宽高一致，并且左上角坐标等于(0,0)，则不进行填充。 使用本接口实现等比例缩放功能时，相关的描述及约束请参见抠图、贴图约束。 由于YUV格式图像下采样约束，当输出图片格式为YUV420SP或YUV422SP格式时，需注意： 对于YUV420SP输出格式，上下左右填充的尺寸建议为偶数； 对于YUV422SP输出格式，左右填充的尺寸建议为偶数。 |
