Encode
函数功能
ImageProcessor类的图片编码接口,使用该接口申请的Image内存无需用户管理,由内部管理释放图片编码。
相关使用流程请参考。
- 输入图像的最大分辨率:8192 * 8192。
 - 输入图像的最小分辨率:32 * 32。
 - 输入图像的真实宽、高均为偶数,若为奇数,则自动向上取偶数,编码出的图片自动补边1像素。
 - 输入图像的宽:对于YUV420SP或RGB数据,对齐到16。
 - 输入图像的高:与输入图片的高度相同的数值,或为输入图片的高度向上对齐到16的数值(最小为32)。
 - 输入图像格式:
- 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 推理系列产品和Atlas 800I A2推理产品支持YUV_SP_420、YVU_SP_420、RGB_888、BGR_888(nv12、nv21、rgb、bgr),其中RGB(BGR)图像格式分辨率不超过(4096 * 4096)。
 
 - 输出图片格式:JPEG压缩格式的图片文件,例如*.jpg。
 
函数原型
1 | APP_ERROR ImageProcessor::Encode(const Image& inputImage, const std::string savePath, const uint32_t encodeLevel = 100);  | 
1 | APP_ERROR ImageProcessor::Encode(const Image& inputImage, std::shared_ptr<uint8_t>& outDataPtr, uint32_t& outDataSize, const uint32_t encodeLevel = 100);  | 
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
inputImage  | 
输入  | 
输入编码前的Image类。Decode接口和其他VPC接口获取的Image类可以直接作为输入。 若是用户自定义构造的Image类,则需要设置图像宽高。  | 
encodeLevel  | 
输入  | 
默认为“100”,Atlas 200/300/500 推理产品输入编码的级别为[0, 100];Atlas 200I/500 A2 推理产品、Atlas 推理系列产品和Atlas 800I A2推理产品的范围为[1, 100]。  | 
savePath  | 
输入  | 
输入编码后保存的图片路径,文件后缀名限制为jpg。  | 
outDataPtr  | 
输出  | 
输出编码后的图片内存数据地址。  | 
outDataSize  | 
输出  | 
输出编码后的图片内存数据大小。  | 
返回参数说明
数据结构  | 
说明  | 
|---|---|
APP_ERROR  | 
程序执行返回的错误码,请参考APP_ERROR说明。  | 
父主题: ImageProcessor