我目前正在阅读立体视觉的主题,使用Hartley&Zimmerman的书和一些论文,因为我试图开发一种能够从两张图像创建立面图的算法。
我正在尝试想出这样一个算法的基本步骤。这就是我认为我必须要做的:
为了得到极线,有必要知道F。这些线用于在第二个图像中的第一个图像中找到图像点x。
现在到了让我有点困惑的部分:现在我将开始在第一张图片中拍摄一个图像点x_i,并尝试使用一些匹配算法在第二张图片中找到相应的点x_i’。使用三角测量,现在可以计算真实世界的点X和它的高程。将对右侧图像中的每个像素重复此过程。
在完美世界中(无噪声等),三角剖分将基于
x1=P1X x2=P2X
在现实世界中,有必要找到一个最佳匹配。
对所有像素执行此操作将生成所需的完整高程图,但是某些像素将无法匹配,因此无法进行三角剖分。
除了这本书之外,我还读了很多关于视差图的论文,这在H&Z中根本没有提到。然而,我想我正确地理解了,差异就是差异x1_i- x2_i
这种方法正确吗?如果不正确,我在哪里犯了错?
发布于 2014-10-23 19:12:20
你的方法总体上是正确的。
您可以将立体相机系统想象为空间中的两个点,它们的相对方向是已知的。这是光学中心。这些是图像平面。当你找到两个对应的像素时,你就可以为每个像素计算一条线,这条线穿过像素和各自的光学中心。由于不完美的世界,它们可能不会相交,人们可能会使用线彼此最接近的点。
当使用差异时,两个图像平面需要对齐,使得图像1中的每一行对应于图像2中的同一行。然后,只需要在每行的基础上搜索对应关系。然后,知道单个对应点在x轴上的差异就足够了。这就是差距。
https://stackoverflow.com/questions/15662814
复制相似问题