CropAndPaste

函数功能

ImageProcessor类的图像抠图并贴图接口,Atlas 推理系列产品支持异步执行,抠图贴图效果示意图请参见图1

相关使用流程请参考抠图贴图

输入输出Image类支持的图像格式参考如下。
  • Atlas 200/300/500 推理产品支持YUV_SP_420、YVU_SP_420(nv12、nv21)。
  • Atlas 200I/500 A2 推理产品支持YUV_SP_420、YVU_SP_420(nv12、nv21)。
  • Atlas 推理系列产品支持YUV_SP_420、YVU_SP_420、RGB_888、BGR_888(nv12、nv21、rgb、bgr),其中RGB(BGR)图像格式分辨率不超过(4096 * 4096)。
  1. “inputImage”中抠取一块图像。
    • 输入Image类的真实图片宽高大小范围:18 * 6 ~ 4096 * 4096,其中 YUV_SP_420 和 YVU_SP_420 格式的宽高可达到 8192 * 8192。
    • 抠图宽高范围不能超过“inputImage”的真实图片宽高,抠图区域的范围最小为:10 * 6。
    • 输入抠图参数的四个值推荐均为偶数。除RGB、BGR以外,若包含奇数,则左上角坐标自动向下取偶数,右下角坐标自动向上取偶数。例如:cropRect{1, 1, 1287, 1287} ,实际抠图宽高为:((1287 + 1) - (1 - 1))= 1288。
  2. 缩放至指定贴图区域的大小。
  3. 将缩放后的图片贴到“pastedImage”的指定贴图区域。
    • 贴图宽高范围不能超过“pastedImage”的真实图片宽高,贴图区域的范围最小为: 10 * 6 ,最大为:4096 * 4096。
    • 输入贴图参数的四个值推荐均为偶数。除RGB、BGR以外,若包含奇数,则左上角坐标自动向下取偶数,右下角坐标自动向上取偶数。
    • 贴图参数左上角坐标的x会自动对齐到16的倍数。例如:
      • pasteRect{17, 17, 1287, 1287} ,实际贴图宽高为:((1287 + 1) - (17 - 1))= 1272,对应的分辨率为1272 * 1272。
      • pasteRect{18, 18, 1287, 1287} ,实际贴图宽为:((1287 + 1) - 32) = 1256,高为:((1287 + 1) - 18) = 1270,对应的分辨率为1256 * 1270。
    • Atlas 200/300/500 推理产品Atlas 200I/500 A2 推理产品环境下,贴图宽高不能超过抠图宽高的[1/32, 16]倍数区间。
    • Atlas 推理系列产品环境下,贴图“rect”的实际宽需要与“16”对齐,否则会有无效数据做填充。在Atlas 200/300/500 推理产品Atlas 200I/500 A2 推理产品环境下,贴图“rect”的右下角的“x”值推荐与“16”对齐。
  4. 输出的“pastedImage”宽自动与16对齐,高与2对齐,因此宽高范围为:32 * 6 ~ 4096 * 4096。
图1 抠图缩放贴图

函数原型

原型1(预计2025年3月正式删除,请使用该接口其他函数原型):

1
APP_ERROR ImageProcessor::CropAndPaste(const Image& inputImage, const std::pair<Rect, Rect>& cropPasteRect, Image& pastedImage);

原型2:

1
APP_ERROR ImageProcessor::CropAndPaste(const Image& inputImage, const std::pair<Rect, Rect>& cropPasteRect, Image& pastedImage, AscendStream& stream);

参数说明

参数名

输入/输出

说明

inputImage

输入

输入抠图缩放前的Image类。

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

cropPasteRect

输入

输入图像的抠图缩放贴图参数。第一个Rect对应抠图参数,第二个Rect对应缩放贴图参数

pastedImage

输入/输出

输出抠图后的Image类。

stream

输入

输入用于异步执行的Stream,具体请参见AscendStream

返回参数说明

数据结构

说明

APP_ERROR

程序执行返回的错误码,请参考APP_ERROR说明