用户需提前准备好待编码的Image对象,可以通过图片解码以及图像处理接口(抠图、缩放、补边等操作对应接口)输出,输出到本地图片或者内存中。
图片编码调用流程参考如下:
关键步骤说明如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | //初始化 MxInit(); { //构造图像处理类 ImageProcessor imageProcessor(deviceId); //图像解码/图像处理操作生成Image //解码后的图像类 Image decodedImage; //根据图像路径进行解码 APP_ERROR ret = imageProcessor.Decode(imagePath, decodedImage); if (ret != APP_ERR_OK) { std::cout << "Decode failed." << std::endl; } //图像处理操作后图像类 Image resizedImage; //图像处理操作(缩放) ret = imageProcessor.Resize(decodedImage, Size(416, 416), resizedImage, Interpolation::HUAWEI_HIGH_ORDER_FILTER); if (ret != APP_ERR_OK) { std::cout << "Resize failed." << std::endl; } //(可选)初始化编码通道JpegEncodeChnConfig jpegEncodeChnConfig; JpegEncodeChnConfig.maxPicWidth = 4096; JpegEncodeChnConfig.maxPicHeight = 4096; imageProcessor.InitJpegEncodeChannel(JpegEncodeChnConfig); //图像编码 ret = imageProcessor.Encode(resizedImage,"encode.jpg"); if (ret != APP_ERR_OK) { std::cout << "Encode failed." << std::endl; } } //去初始化 MxDeInit(); |