我目前正在尝试了解 OpenCV 的 SGBM 视差算法是如何工作的,我知道像素成本计算遵循 Birchfield 和 Tomasi 算法。 http://robotics.stanford.edu/~birch/publications/dissimilarity_pami1998.pdf
我似乎无法弄清楚什么是 clipTab[TAB_SIZE] 以及为什么以这种方式填充。
int ftzero = std::max(params.preFilterCap, 15) | 1;
PixType clipTab[TAB_SIZE];
for( k = 0; k < TAB_SIZE; k++ )
clipTab[k] = (PixType)(std::min(std::max(k - TAB_OFS, -ftzero), ftzero) + ftzero);
可以使用此链接找到完整的代码:
https://github.com/opencv/opencv/blob/master/modules/calib3d/src/stereosgbm.cpp