跳到主要内容

ImageProcessor

TensorToImage

函数功能

将Host侧Tensor类转换为Host侧Image类,或将Device侧Tensor类转换为DVPP侧Image类。

在转换过程中,会对Image的宽进行16向上对齐、对Image的高进行2向上对齐,转换后的Image类对象将存在补边区域。

转换后的Image类可调用成员函数GetSize()返回Size类对象查看补边后的宽、高,调用成员函数GetOriginalSize()返回Size类对象查看图片原始宽、高。

例如:

  • Tensor类对象对应的图片宽、高为500、499时,转换得到的Image类对象在补边后,通过GetOriginalSize()可获得宽、高分别为500、499,通过GetSize()可获得宽、高分别为512、500。
  • Tensor类对象对应的图片宽、高为512、500时,转换得到的Image类对象不需要补边,即转换后的Image类对象宽、高仍为512、500。

函数原型

APP_ERROR TensorToImage(const Tensor& inputTensor, Image& outImg, const ImageFormat& imageFormat)

参数说明

参数名输入/输出说明
inputTensor输入Tensor类,输入张量。输入需满足以下要求。
- 元素类型需为Uint8类型。
- Tensor的维度需为2(YUV400格式时)、3、4。
- Tensor的宽、高、通道数需与“imageFormat”相匹配。
outImg输出Image类,输出图片,其内存分配在DVPP侧。
imageFormat输入ImageFormat类,指定图片的格式,需与“inputTensor”数据所对应的图片格式相匹配。

返回参数说明

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

父主题: Image

类说明

ImageProcessor类,作为图像处理类,主要开放图像编解码、缩放和抠图等接口。

ImageProcessor对象不支持在多线程中并发使用,如需多线程使用同一个ImageProcessor对象,用户需自行保证加锁互斥。

:::note 说明 ImageProcessor类涉及申请Device侧资源,与MxDeInit的作用域冲突,因此,其作用域不能大于或等于MxDeInit的作用域。 :::

关于真实图片宽高与对齐后的图片宽高说明

图1所示,由于硬件限制,ImageProcessor使用过程中存在部分限制,为了加快读写速度,图片长宽需要对齐到指定大小,但不影响有效区域(采用向右、向下填充无效数据的方式,对齐到指定大小)。

在对图片进行缩放等操作时,ImageProcessor将会以图片原始的高宽进行处理。

图1 对齐宽高与真实宽高

父主题: ImageProcessor

ImageProcessor

函数功能

ImageProcessor类的构造函数,支持异步执行。

若因内存不足,或无法识别芯片等构造失败的场景会抛出std::runtime_error异常。

图像处理接口(解码除外)的输入Image类包含的内存数据均需要在Device侧,用户使用ImageProcessor类内的接口获取的Image对象内存数据已经在Device侧,并且无需用户管理释放。

函数原型

ImageProcessor(const int32_t deviceId = 0);

参数说明

参数名输入/输出说明
deviceId输入图像处理类部署的芯片,默认为0号芯片。 取值范围:[0, 识别到的芯片个数 - 1]。

父主题: ImageProcessor

~ImageProcessor

函数功能

ImageProcessor类的默认析构函数。

函数原型

~ImageProcessor()

父主题: ImageProcessor

InitJpegEncodeChannel

函数功能

初始化JPEGE图像通道,用于JPEG编码。

函数原型

APP_ERROR InitJpegEncodeChannel(const JpegEncodeChnConfig& config = JPEG_ENCODE_CHN_CONFIG);

参数说明

参数名输入/输出说明
config输入通道配置参数,取值范围为[32, 8192], 默认值为“JPEG_ENCODE_CHN_CONFIG”,(即图像最大宽高为8192 * 8192)。该配置无效。 当前仅支持配置图片编码的通道宽高(maxPicWidth、maxPicHeight),内部自动16对齐,当高小于宽时,高自动向上对齐到宽的长度,请根据实际编码场景图片预留适当的宽高。 对应数据结构参见如下。
text<br>struct JpegEncodeChnConfig &#123;<br>uint32_t maxPicWidth = MAX_HIMPI_VENC_PIC_WIDTH;<br>uint32_t maxPicHeight = MAX_HIMPI_VENC_PIC_HEIGHT;<br>&#125;;<br>

返回参数说明

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

父主题: ImageProcessor

在线提单