对输入的图像进行缩放操作,输出到Tensor对象中。
使用缩放接口前,用户需准备好被缩放的图片并转换到Tensor对象中。
关键步骤说明如下:
以下为功能特性关键步骤的代码示例,不可以直接拷贝编译运行,仅供参考。
//初始化 MxBase::MxInit(); { // 读取图片 std::string imgPath = "./test.jpg"; cv::Mat imgData = cv::imread(imgPath, cv::IMREAD_UNCHANGED); std::vector<uint32_t> shape{600, 600, 3}; // 构造输入tensor MxBase::Tensor input(imgData.data, shape, MxBase::TensorDType::UINT8, -1); input.ToDvpp(0); // 设置缩放宽高 MxBase::Size resize(289, 289); // 构造输出tensor std::vector<uint32_t> dstShape = {289, 304, 3}; MxBase::Tensor dst(dstShape, MxBase::TensorDType::UINT8, -1); MxBase::Tensor::TensorMalloc(dst); dst.ToDvpp(0); // 设置输出tensor是否保留输入tensor无效边界 bool keepMargin = true; // 执行缩放操作 APP_ERROR ret = MxBase::Resize(input, dst, resize, MxBase::Interpolation::BILINEAR_SIMILAR_OPENCV, keepMargin); if (ret != APP_ERR_OK) { std::cout << "Resize failed." << std::endl; } } // 去初始化 MxBase::MxDeInit();