昇腾社区首页
中文
注册

CropResize

函数功能

ImageProcessor类的图像抠图并缩放接口,使用该接口申请的Image内存无需用户管理,内部管理释放。

  • 输入输出Image类的图像格式,请参考 ImageFormat 枚举类 ImageFormat
  • 输入 Image 类的“original”宽高大小范围:18 * 6 ~ 4096 * 4096,其中 YUV_SP_420 和 YVU_SP_420 格式的宽高可以到 8192 * 8192。
  • 输出 Image 类的最大分辨率:4096 * 4096,最小分辨率:18 * 6。
  • 输出图片的宽自动与 16 对齐, 高与 2 对齐,因此宽高范围为:32 * 6 ~ 4096 * 4096。
  • 抠图区域的最小为 10 * 6,抠图区域不能超出输入图片的“original”宽高。
  • 缩放的范围为 18 * 6 ~ 4096 * 4096,不能超出抠图区域的 [1/32,16] 倍数区间。
  • 由于硬件接口限制,输入“cropRect”的四个值推荐均为偶数。若包含奇数,则左上角坐标自动向下取偶数,右下角坐标自动向上取偶数。

    例如:cropRect{1, 1, 1287, 1287} ,实际抠图宽高为: ((1287 + 1) - (1 - 1))= 1288。

函数原型

APP_ERROR CropResize(const Image& inputImage, const std::vector<Rect>& cropRectVec,
                     const Size& resize, std::vector<Image>& outputImageVec);

APP_ERROR CropResize(const Image& inputImage, const std::vector<std::pair<Rect, Size>>& cropResizeVec,
                     std::vector<Image>& outputImageVec);

APP_ERROR CropResize(const std::vector<Image>& inputImageVec,
                     const std::vector<std::pair<Rect, Size>>& cropResizeVec,
                     std::vector<Image>& outputImageVec);

参数说明

参数名

输入/输出

说明

inputImage

输入

输入抠图缩放前的Image类。

Decode接口和其他VPC接口获取的Image类可以直接作为输入。若是用户自定义构造的Image类,则需要设置图像宽高和图像对齐后的宽高。

inputImageVec

输入

输入抠图缩放前的Image类列表(针对批量抠图场景)。

Decode接口和其他VPC接口获取的Image类可以直接作为输入。若是用户自定义构造的Image类,则需要设置图像宽高和图像对齐后的宽高。

cropRectVec

输入

输入抠图参数列表,需要与输出图像列表的元素个数一致。

resize

输入

输入统一缩放宽高。

cropResizeVec

输入

输入图像的抠图缩放参数列表。Rect为抠图坐标框,Size为缩放宽高(针对批量抠图缩放场景)。

outputImageVec

输出

输出抠图后的Image类列表(针对批量抠图场景)。

返回参数说明

数据结构

说明

APP_ERROR

程序执行返回的错误码,请参考“MxBase/ErrorCode/ErrorCode.h”文件。