多个相机图像拼接

时间:2012-07-15 19:56:57

标签: opencv homography image-stitching

我一直在运行一个拼接多个摄像头图像的项目,但我认为我遇到了瓶颈......我对这个问题有一些疑问。

我想在将来尝试将它们安装在车辆上,这意味着相机的相对位置和方向是固定的。

另外,由于我正在使用多个相机并尝试使用HOMOGRAPHY来拼接它们的图像,我会尽可能地将相机放在尽可能接近错误的位置(由于相机的焦点不在相同的位置,这是不可能的,因为相机占据一定的空间。)可以减少。

这是我的一个简短的实验视频。 http://www.youtube.com/watch?v=JEQJZQq3RTY

如图所示,拼接结果非常糟糕...... 即使相机拍摄的场景是静态的,单应性仍然会变化。

以下链接是我到目前为止所做的代码,code1.png和code2.png是在Stitching_refind.cpp中显示部分代码的图片。

https://docs.google.com/folder/d/0B2r9FmkcbNwAbHdtVEVkSW1SQW8/edit?pli=1

我几天前更改了代码中的一些内容,比如执行第2,3和4步(请查看上面提到的2张图片)JUST ONCE。


总结一下,我的问题是:

1。是否有可能在计算特征之前找出重叠区域? 我不想计算整个图像的特征,因为它会导致更多的计算时间和不匹配。 我想知道是否可以在2个相邻图像的重叠区域中使用JUST计算机功能?

2.我能做些什么来使获得的单应性更准确? 有人谈到CAMERA CALIBRATION并尝试其他一些匹配方法。 我还是计算机视觉新手...... 我试着研究一些关于相机校准的材料,但我仍然不知道它是什么。

大约2个月前我在这里问了一个类似的问题: Having some difficulty in image stitching using OpenCV

,其中一位回答者克里斯说:

  

听起来你理智地谈论这个,但如果你有   访问两个摄像头,他们将保持静止   相互尊重,然后离线校准,然后简单地应用   在线转型将使您的应用程序更有效率。

“离线校准”是什么意思?它有什么帮助?

感谢您的任何建议和帮助。

1 个答案:

答案 0 :(得分:5)

克里斯写道:

However, your points are not restricted to a specific plane as they are 
imaging a 3D scene. If you wanted to calibrate offline, you could image 
a chessboard with both cameras, and the detected corners could be used
in this function.

离线校准意味着您可以使用一些易于检测的校准模式。然后计算变换矩阵。在此校准之后,您将此(先前计算的)矩阵应用于采集的图像,它应该适合您。