【发布时间】:2013-11-28 18:06:14
【问题描述】:
我正在尝试在不使用 OpenCV 或其他图像处理库的情况下实现立体块匹配。 所有的教程、书籍、讲座幻灯片等都只教授了比较图像中块的非常基本的方法,但结果非常糟糕。 我读了一些论文,比如来自 K.Konolige 的论文,它是 OpenCV 算法的基础,但我似乎仍然错过了一些重要的东西。
我现在在做什么:
- 将 Sobel 应用于左右图像。
- 进行块匹配
- 在左侧图像中的像素周围选择一个 (9x9) 块,并与右侧图像同一行中的块进行比较(原始块右侧最多 80 个像素)
- 找到最匹配的那个(使用 SAD 绝对差之和)
由此产生的差异是我必须走多少步才能找到最佳匹配。
阅读 Konolige 论文后,我实现了 Left-Right-Check,在您找到最佳匹配后,您会在左侧图像中搜索右侧图像的最佳匹配,并且仅当它是您的匹配时才接受它最初搜索或在它旁边。
还添加了一个检查,以便一个像素只能匹配一次,如果使用位域的像素之前已与一个像素匹配,则在搜索中将跳过它们。
结果看起来不是很错误但很稀疏。
我没有添加什么?每个人似乎都知道但没有详细说明的东西。 我需要添加某种插值吗?
感谢任何帮助!
我的输入是筑波立体声对。
在网上找到的结果(第二个是 OpenCV BM,第三个显然是博客作者的 SAD BM)
http://cseautonomouscar2012.files.wordpress.com/2012/11/111412_2001_comparisono1.png
【问题讨论】:
标签: opencv image-processing computer-vision