如何使用opencv中的单应矩阵将点从一个图像重新投影到另一个图像?

时间:2015-12-23 07:52:23

标签: c++ opencv computer-vision

我有两个图像I1和I2以不同的视角拍摄。我在OpenCV中使用findHomography函数计算了单应性矩阵H.现在我需要在图像I2上重新投影(即找到像素坐标)图像I1的中心像素p1(x,y)。

1 个答案:

答案 0 :(得分:0)

单应性基本上是线性映射,即它可以通过与3×3矩阵的简单乘法来执行。引入实际的非线性翻译Homogeneous coordinates(但这是一个更乏味的故事)。

简而言之,如果你有OpenCV数据类型,例如Point2f您可以透视地使用已发货的perspectiveTransform转换点。

std::vector<Point2f> src_points;
std::vector<Point2f> dest_points;
// ... add some points to src_points and get H e.g. from findHomography
perspectiveTransform( src_points, dest_points, H);

您将找到更广泛的示例here