色域转换
功能介绍
对输入的图像进行色域转换操作,输出到Tensor对象中。
接口调用流程
使用色域转换接口前,用户需准备好被转换的图片对象。
图1 张量方法(色域转换)接口调用流程


关键步骤说明如下:
- 调用MxInit()接口进行全局初始化。
- 构造输出Tensor对象。
- 选择执行方式进行色域转换,请根据实际业务选择同步方式或异步方式。
- 调用MxDeInit()接口对初始化的全局资源进行去初始化。
示例代码
//初始化
MxBase::MxInit();
{
// 读取图片
std::string imgPath = "./test.jpg";
cv::Mat imgData = cv::imread(imgPath);
size_t originalWidth = image.cols;
size_t originalHeight = image.rows;
// 构造输入Tensor
const std::vector<uint32_t> shape = {originalHeight, originalWidth, 3};
Tensor inputTensor((void*)imgData.data, shape, TensorDType::UINT8, -1);
inputTensor.ToDevice(0);
// 定义转换模式
auto mode = MxBase::CvtColorMode::COLOR_BGR2RGB;
// 定义输出Tensor
Tensor outputTensor;
// 执行色域转换
APP_ERROR ret = MxBase::CvtColor(inputTensor, outputTensor, mode, true);
if (ret != APP_ERR_OK) {
std::cout << "CvtColor failed." << std::endl;
}
}
//去初始化
MxBase::MxDeInit();
父主题: 通过张量方法进行图像处理(Tensor)