在opencv中对齐图像

时间:2014-02-28 04:14:28

标签: opencv image-processing

我有相同场景的图像聚焦在不同的距离。我想对齐图像,使每个特征在每个图像中处于完全相同的位置。我怎么能用opencv做到这一点?

3 个答案:

答案 0 :(得分:9)

首先,您已确定图像之间的转换。它可以像移位一样简单,也可以像非线性翘曲一样复杂。聚焦操作不仅可以移动,还可以略微缩放甚至剪切图像。在这种情况下,您必须使用Homography来匹配它们。

其次,您必须尝试的最简单方法是手动选择至少4个对应点的巴黎,记录它们的坐标并将它们输入findHomography()函数。得到的3x3变换可以在warpPerspective()中用于匹配图像。如果结果良好,您可以通过使用SURF点并匹配其描述符来自动查找对应关系的过程。

最后,如果结果不令人满意,你必须进行比单应性更普遍的转换。我会尝试分段试图分别匹配图像。无论如何,有关您的输入和最终目标的更多信息将有助于正确解决问题。

答案 1 :(得分:5)

您可以使用openCV的image stitchingfeature machting算法。

功能匹配的主要步骤是:

  • 提取功能(SURF或SIFT或其他......)
  • 匹配功能(FLANN或BruteForce ...)并过滤匹配
  • 查找几何变换(RANSAC或LMeds ...)

答案 2 :(得分:3)

基本思想是在X和Y方向上对图像及其2D平移进行面内旋转,以便根据匹配的特征点进行旋转。

查看Image Alignment Algorithms,您可以在其中找到两种使用OpenCV(带代码)的方法。