Что такое «cliptab» в алгоритме SGBM OpenCV?

c++ opencv disparity-mapping

326 просмотра

1 ответ

37 Репутация автора

В настоящее время я пытаюсь понять, как работает алгоритм дисбаланса OpenCV SGBM, я знаю, что расчеты стоимости пикселя следуют алгоритмам Берчфилда и Томази. 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

Автор: C. Jaraque Источник Размещён: 18.07.2016 04:15

Ответы (1)


0 плюса

1 Репутация автора

Это вкладка клипа для оператора клипа после фильтра sobel.

Он будет использоваться во время calcPixelCostBT . На мой взгляд, полезным значением вкладки является только индексная форма (TAB_OFS - ftzero) до (TAB_OFS + ftzero), если вы заметили «tab + = tabOfs;» во время calcPixelCostBT . Значение табуляции в этой области равно [0, 2 * ftzero], которое вы можете получить из правила клипа. правило клипа:

Автор: willhua Размещён: 20.11.2017 03:36
Вопросы из категории :
32x32