立体匹配算法SGBM
SGBM算法,作为一种全局匹配算法,立体匹配的效果明显好于局部匹配算法,但是同时复杂度上也要远远大于局部匹配算法。 原文链接: https://blog.csdn.net/renshengrumenglibing/article/details/8525328SGBM的基本原理 SGBM的基本步骤涉及:预处理、代价计算、动态规划以及后处理 预处理 Step1:SGBM采用水平 Sobel算子 ,把图像做处理,公式为: Sobel(x,y)=2[P(x+1,y)-P(x-1,y)]+ P(x+1,y-1)-P(x-1,y-1)+ P(x+1,y+1)-P(x-1,y+1) Step2:用一个函数将经过水平Sobel算子处理后的图像上每个像素点(P表示其像素值)映射成一个新的图像:PNEW表示新图像上的像素值。映射函数: 预处理实际上是得到图像的梯度信息 。经预处理的图像保存起来,将会用于计算代价。 预处理参数 1:preFilterCap: 水平sobel预处理后,映射滤波器大小默认为15 int ftzero =max(params.preFilterCap, 15) | 1; opencv测试例程test_stereomatching.cpp中取63。 代价计算 代价有两部分组成: 1经过预处理得到的图像的梯度信息经过 基于采样的方法得到的梯度代价