[英]Bad Results with Basic Stereo Block Matching (without OpenCV)
我试图在不使用OpenCV或其他图像处理库的情况下实现立体块匹配。 所有教程,书籍,演讲幻灯片等仅讲授比较图像中块的基本方法,但结果非常糟糕。 我读了一些像K.Konolige那样的论文,这是OpenCV中算法的基础,但我似乎仍然错过了一些重要的东西。
我现在在做什么:
由此产生的差异是我必须走多少步才才能找到最佳匹配。
在阅读Konolige论文后,我实施了左右检查,在找到最佳匹配后,您在左图中搜索到最佳匹配,并且只有在您最初搜索到的图像时才接受它。或者就在旁边。
还添加了一个检查,以便像素只能匹配一次,如果先前已经与像素匹配,则将在搜索中跳过使用位域像素。
结果看起来不是很错,但非常稀疏。
我没有添加什么? 每个人似乎都知道的东西,但没有拼写出来。 我需要添加某种插值吗?
任何帮助表示赞赏!
我的输入是Tsukuba立体声对。
在网上找到的结果(第二个是OpenCV BM,第三个显然是博客作者的SAD BM)
http://cseautonomouscar2012.files.wordpress.com/2012/11/111412_2001_comparisono1.png
您的结果稀疏是正常的,因为您的算法很稀疏!
让我们回顾一下这个故事:
经典的BM实现工作在图像强度补丁上(这就是亮度均衡很重要的原因),即采用SSD / SAD /像素强度的相关性。
此外,BM工作,但对于困难的图像不太好。 通常需要稳健的成本函数(例如归一化相关)而不是SAD。 将结果与OpenCV进行比较时要小心:OpenCV提出了另一种名为SGBM的BM实现(针对半全球BM)。 在这种情况下,附加术语强制相邻像素的视差也接近。 这称为规则约束,有两种方式:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.