输入图片1:
http://i.stack.imgur.com/2TCi3.jpg
输入图片2:
http://i.stack.imgur.com/j1fFA.jpg
(注意我在使用它们进行整改之前对图像进行了不失真等)
使用SURF和RANSAC校正图像:
(按顺序为1和2):
http://i.stack.imgur.com/pwbUw.jpg
http://i.stack.imgur.com/mb7TM.jpg
使用手动选择的点校正图像(更不准确!):
http://i.stack.imgur.com/Bodeg.jpg
现在,问题是,看看结果我们看到冲浪版几乎完全被纠正了。(极线对齐得很好)。
虽然手动选择的点版本得到了很好的纠正......但是极线很难对齐。
但是当我们使用我们的整改来查看openCV sgBM()的结果时:
手动点结果:
http://i.stack.imgur.com/N8Cyp.png
SURF点结果:
http://i.stack.imgur.com/tGsCN.jpg
使用SURF点(校正良好的版本)显示的差异/深度更准确/更正确。这并不奇怪。
然而,实际检测到的物体像素和物体边界在严重纠正的verison上实际上要好得多
例如,您可以看到笔实际上是一支笔,并且在错误修正的视差图中具有笔的形状,但在经过良好校正的地图中却没有。
问题是,为什么?
我该如何解决?
(我试着用sgBM()参数愚弄,确保两者都是相同的,但它没有任何效果。仅仅是不同的整改使得经过严格纠正的图像因某种原因看起来很好(尊重对象边界))。