一般的Cost Function如下:ED基于像素的亮度,Es基于像素邻居之间的Smoothness。 在这里简单介绍后两种全局匹配算法:1:Graph Cut: 将每一个像素看作Graph中的一个Node,然后假设该图有L个不同的深度值,则添加L个新的Node作为Label,然后求视差图的问题就变成了多重Labelling的问题了,具体Graph Cut参照文献[4]。 2:Belief Propagation: 将图像看作马尔科夫随机场,则求视差问题变成了最大化联合后验概率的问题,每一个像素对其深度值的猜测来自于其邻居给的信息,然后再把信息传给其他的邻居。每一个信息有 一个可靠度(概率)。最后经过多次循环深度值会收敛。 [1]Lowe, David G. (2004). "Distinctive Image Features from Scale-Invariant Keypoints" [2]Herbert Bay,Tinne Tuytelaars, and Luc Van Gool,SURF: Speeded Up Robust Features,ECCV,2006 [3]Pablo F. Alcantarilla, Adrien Bartoliand Andrew J. Davison, KAZE Features. In European Conference on Computer Vision (ECCV), 2012.[4]Yuri Boykov and Vladimir Kolmogorov (2003), "Computing Geodesics and Minimal Surfaces via Graph Cuts" OpenCV提供了以下四种立体匹配算法的函数: