0

我是 Open Cv 的新手,我想转换两个图像,这是我的图像,左图和右图。 在此处输入图像描述

在此处输入图像描述

这是我的代码

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

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

4

1 回答 1

1

你对做什么有一个根本的误解cv::transform()。该文档 指出:

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

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

看起来你想要一个几何变换。这可以通过以下方式实现cv::warpAffine()

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);
于 2013-05-29T16:04:36.900 回答