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

roc*_*dal 7 python opencv image image-processing

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

如何对齐它们以使它们整齐地覆盖并裁剪边缘

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

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

由于我对openCV很新,我更喜欢一个易于实现的解决方案

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

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

我怎么能比这更好?

BCo*_*nic 9

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

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