什么是OpenCV的SGBM算法中的“cliptab”?

时间:2016-07-18 16:15:32

标签: c++ opencv disparity-mapping

我目前正在尝试了解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

1 个答案:

答案 0 :(得分:0)

在sobel滤镜后,它是剪辑操作符的剪辑选项卡。

它将在 calcPixelCostBT 期间使用。在我看来,如果您注意到“tab + = tabOfs;”,则选项卡的有用值仅为索引表单(TAB_OFS - ftzero)到(TAB_OFS + ftzero)。在 calcPixelCostBT 期间。此区域中tab的值为[0,2 * ftzero],您可以从剪辑规则中获取它。 the clip rule: