我是Open Cv的新手,我想要转换这两个图像, 这是我的图像,左图像和右图像。
这是我的代码
cv::Mat transformMat = cv::estimateRigidTransform(leftImageMat, rightImageMat, true);
transform(leftImageMat, reconMat, transformMat);
但问题是reconMat是2频道。那么如何在openCv中显示它或转换为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);