【问题标题】:How to align multiple camera images using opencv如何使用opencv对齐多个相机图像
【发布时间】:2014-03-09 06:12:39
【问题描述】:

假设有人从相机连拍,他将拥有多张图像,但由于没有使用三脚架或支架,拍摄的图像会略有不同。

如何对齐它们,使它们整齐地重叠并裁剪边缘

我搜索了很多,但大多数解决方案要么进行 3D 重建,要么使用 matlab。

例如https://github.com/royshil/SfM-Toy-Library

由于我是 openCV 的新手,我更喜欢易于实施的解决方案

我通过在 MSPaint 中手动旋转和裁剪图像生成了许多数据集,但任何包含相应数据集(略微旋转和翻译的图像)的链接也会有所帮助。

编辑:我在这里找到了解决方案 http://www.codeproject.com/Articles/24809/Image-Alignment-Algorithms 这给出了旋转和平移向量的近似值。

我怎样才能做得比这更好?

【问题讨论】:

    标签: python image opencv image-processing


    【解决方案1】:

    这取决于您所说的“更好”的含义(准确性、速度、低内存要求等)。一个经典的方法是将每一帧#i(i>2)与第一帧对齐,如下:

    1. 局部特征检测,例如通过 SIFT 或 SURF (link)
    2. 描述符提取 (link)
    3. 描述符匹配 (link)
    4. 通过透视变换进行对齐估计 (link)
    5. 使用估计的变换 (link) 变换图像 #i 以匹配图像 1

    【讨论】:

    • 谢谢,这很有帮助。我现在已经完成了大部分工作,但是为了正确对齐它,对于#5,我不想反转估计的变换来纠正视角。第 1 帧建立正确的视角,单应矩阵是从第 1 帧到第 2 帧的变换。要使第 2 帧与第 1 帧对齐,我们应该在第 2 帧上使用 Inv(M)。再次感谢,请告诉我是否我误解了一些东西
    • 是的,这是完全可能的。这实际上取决于您用于warpPerspective 的标志,但我认为您做对了。
    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2017-05-26
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多