我正在研究opencv的半全局块匹配。事实上,我不明白为什么我们需要浏览所有方向来计算成本汇总?是否有人试图限制此路径(扫描线)的长度?
成本聚合涉及在多个方向上进行搜索,以对解决方案实施全局平滑度约束。在没有这些约束的情况下,每个像素的视差是在不考虑其邻居的估计视差的情况下计算的,并且由于匹配过程将返回许多误报,因此结果通常会包含许多"噪声"。
通过假设观察到的表面非常平滑,如果像素与邻居不一致,可以通过设置为像素分配深度的额外成本来惩罚视差偏移。松散地说,这意味着当你试图估计一个深度并有几个可能的匹配时,你可能会选择与相邻像素的深度估计非常一致的匹配。搜索更多的方向会增加你在成本计算中考虑的邻居数量,通常会增加
OpenCV没有提供减少该搜索路径长度的方法,但如果你想让算法更快地运行,你可以禁用一些方向,只搜索5条路径而不是8条路径(这是通过将参数fullDP设置为false来执行的),也可以减少视差搜索范围。