我目前正在尝试了解OpenCV的SGBM差异算法是如何工作的,我知道像素成本计算遵循Birchfield和Tomasi算法。 ActionCable::Connection::Base#transmit
我似乎无法弄清楚什么是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);
可以使用以下链接找到完整的代码:
http://robotics.stanford.edu/~birch/publications/dissimilarity_pami1998.pdf
答案 0 :(得分:0)
在sobel滤镜后,它是剪辑操作符的剪辑选项卡。
它将在 calcPixelCostBT 期间使用。在我看来,如果您注意到“tab + = tabOfs;”,则选项卡的有用值仅为索引表单(TAB_OFS - ftzero)到(TAB_OFS + ftzero)。在 calcPixelCostBT 期间。此区域中tab的值为[0,2 * ftzero],您可以从剪辑规则中获取它。 the clip rule: