多个相机图像拼接

Sil*_* JC 6 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个月前,我在这里问了一个类似的问题: 使用OpenCV在图像拼接方面遇到一些困难

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

听起来你理智地谈论这个问题,但是如果你可以访问这两个摄像头,并且它们将相互保持静止,那么离线校准,只需在线应用转换就可以提高你的应用效率.

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

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

krz*_*ych 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.
Run Code Online (Sandbox Code Playgroud)

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