如何在OpenCv中显示2通道图像或将其更改为3个或1个通道

时间:2013-05-29 06:33:50

标签: opencv transform conventions

我是Open Cv的新手,我想要转换这两个图像, 这是我的图像,左图像和右图像。 enter image description here

enter image description here

这是我的代码

cv::Mat transformMat = cv::estimateRigidTransform(leftImageMat, rightImageMat, true);
transform(leftImageMat, reconMat, transformMat);

但问题是reconMat是2频道。那么如何在openCv中显示它或转换为1通道图像,如右上图和左图所示。

1 个答案:

答案 0 :(得分:1)

你对cv::transform()的作用有一个根本的误解。 documentation cv::warpAffine()  规定:

  

执行每个数组元素的矩阵转换。

这意味着每个元素的数值都由指定的矩阵转换。

看起来你想要几何变换。这可以使用{{3}}:

来实现
cv::Mat transformMat = cv::estimateRigidTransform(leftImageMat, rightImageMat, true);
cv::Mat output;
cv::Size dsize = leftImageMat.size();    //This specifies the output image size--change as needed
cv::warpAffine(leftImageMat, output, transformMat, dsize);