VPI - 视觉编程接口

3.2 版本

裁剪缩放器

从输入图像中裁剪矩形区域,将它们缩放到统一尺寸,并将它们写入单个图像中,以便在后续的批量图像处理中使用。 更多...

函数

VPIStatus vpiCreateCropScaler (uint64_t backends, int maxFrames, int maxObjects, VPIPayload *payload)
 为裁剪缩放算法创建负载实例。 更多...
 
VPIStatus vpiSubmitCropScalerBatch (VPIStream stream, uint64_t backend, VPIPayload payload, VPIImage *frameList, int32_t numFrames, VPIArray objects, int32_t patchWidth, int32_t patchHeight, VPIImage outPatches)
 从输入帧中裁剪矩形区域,并将它们全部缩放到相同尺寸。 更多...
 

详细描述

从输入图像中裁剪矩形区域,将它们缩放到统一尺寸,并将它们写入单个图像中,以便在后续的批量图像处理中使用。

函数文档

◆ vpiCreateCropScaler()

VPIStatus vpiCreateCropScaler ( uint64_t  backends,
int  maxFrames,
int  maxObjects,
VPIPayload payload 
)

#include <vpi/algo/CropScaler.h>

为裁剪缩放算法创建负载实例。

参数
[输入]backends有资格执行该算法的 VPI 后端。
[输入]maxFrames最大帧数。
  • 必须 >= 1 且 <= 128。
[输入]maxObjects最大对象数。
  • 必须 >= 1。
[输出]payload指向接收创建句柄的负载变量的指针。
返回值
VPI_ERROR_INVALID_OPERATION后端在当前上下文中未启用。
VPI_ERROR_NOT_IMPLEMENTED给定后端不支持裁剪缩放器算法。
VPI_ERROR_INVALID_CONTEXT当前上下文已销毁。
VPI_ERROR_OUT_OF_MEMORY无法分配所需资源。
VPI_SUCCESS操作执行成功。

◆ vpiSubmitCropScalerBatch()

VPIStatus vpiSubmitCropScalerBatch ( VPIStream  stream,
uint64_t  backend,
VPIPayload  payload,
VPIImage frameList,
int32_t  numFrames,
VPIArray  objects,
int32_t  patchWidth,
int32_t  patchHeight,
VPIImage  outPatches 
)

#include <vpi/algo/CropScaler.h>

从输入帧中裁剪矩形区域,并将它们全部缩放到相同尺寸。

参数
[输入]stream操作将排队的流。
  • 不能为空。
  • 流必须启用将执行算法的后端。
[输入]backend将执行算法的后端。
  • 必须是在负载创建期间指定的后端,或 0 作为使用此后端的简写。
[输入]payloadvpiCreateCropScaler 创建的负载。
[输入]frameList图像帧列表。如果 frameList 中的图像为空,则不会处理其对应的对象。
  • 不能为空。
  • 必须指向至少包含 numFrames 图像的数组。
  • 每个图像必须启用将执行算法的后端。
  • 所有帧必须具有相同的图像格式、大小和步幅。
  • 步幅必须是元素大小的倍数。
  • 有效图像格式
    格式CUDAPVA
    VPI_IMAGE_FORMAT_RGBA8 * *
    VPI_IMAGE_FORMAT_NV12_ER *
    VPI_IMAGE_FORMAT_NV12 *
[输入]numFrames批处理中输入帧的数量。
[输入]objects带有边界框的输入数组,通过其索引与每个输入帧关联。
  • 不能为空。
  • 必须启用将执行算法的后端。
  • 每个对象的输入帧索引必须 >= 0 且 < numFrames。超出范围的索引是未定义的行为。
  • 数组中对象的数量必须 >= 0 且 < vpiCreateCropScaler 指定的 maxObjects。
  • 有效数组类型
[输入]patchWidth要写入 outPatches 的补丁宽度。
[输入]patchHeight要写入 outPatches 的补丁高度。
[输出]outPatches将在其中写入裁剪和缩放补丁的图像。每个补丁的宽度将等于 patchWidth。每个补丁的高度将等于 patchHeight。对象 'o' 的补丁将从行 o * patchHeight 开始,并具有高度 'patchHeight'。如果图像格式与输入帧的格式不同,则将动态执行图像格式转换。
返回值
VPI_ERROR_INVALID_ARGUMENTstream 为 NULL。
VPI_ERROR_INVALID_ARGUMENTframeListobjects 或 outPatches 为 NULL。
VPI_ERROR_INVALID_ARGUMENTpayload 不是由 vpiCreateCropScaler 创建的。
VPI_ERROR_INVALID_ARGUMENToutPatches' 的高度不能被对象数整除。
VPI_ERROR_INVALID_ARGUMENT输入帧具有不同的图像大小。
VPI_ERROR_INVALID_IMAGE_FORMAT输入帧具有不同的图像格式。
VPI_ERROR_INVALID_ARRAY_TYPEobjects 中不支持的数组类型。
VPI_ERROR_INVALID_PAYLOAD_TYPEpayload 无效。
VPI_ERROR_INVALID_OPERATION所需的后端在 streamframeList 中的某些图像、outPatchesobjects 中未启用。
VPI_SUCCESS操作执行成功。