使用抠图缩放接口前,用户需准备好被抠图缩放的图片对象。
关键步骤说明如下:
用户构造ImageProcessor对象,之后可以调用InitVpcChannel()初始化通道,若不调用该接口,ImageProcessor会在执行抠图缩放前自动进行通道初始化。
根据业务对图片进行解码,生成可抠图缩放的Image对象。后续可以通过图片处理接口对图片进行处理,生成最终需要抠图缩放的Image对象。
根据业务要求,选择单输入多抠图单缩放、单输入多抠图多缩放或多输入多抠图多缩放的方式,构造对应的输入的Rect、Size和输出的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 36 37 38 |
//初始化 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; } //(可选)初始化图像处理通道 imageProcessor.InitVpcChannel(); //执行抠图缩放 //抠图缩放操作后图像类 std::vector<Image> cropResizedImageVec(1); //抠图尺寸 Rect rect(0, 0, 240, 240); std::vector<Rect> cropConfigVec = {rect}; //缩放尺寸 Size size(416, 416); //抠图缩放操作 ret = imageProcessor.CropResize(decodedImage, cropConfigVec, size, cropResizedImageVec); if (ret != APP_ERR_OK) { std::cout << "CropResize failed." << std::endl; } } //去初始化 MxDeInit(); |