如何使用opencv对齐多个摄像机图像

时间:2014-03-09 06:12:40

标签: python image opencv image-processing

想象一下,有人从相机拍摄一张照片,他将拍摄多张照片,但由于没有使用三脚架或支架,拍摄的图像会略有不同。

如何对齐它们以使它们整齐地叠加并裁剪边缘

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

e.g。 https://github.com/royshil/SfM-Toy-Library

由于我对openCV不熟悉,我更倾向于使用易于实现的解决方案

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

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

我怎么能比这更好?

1 个答案:

答案 0 :(得分:9)

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

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