Применение алгоритма сопоставления блоков Konolige недостаточно объяснено в документации OpenCV. Параметры CvStereoBMState влияют на точность расхождений, вычисляемых cv::StereoBM. Однако эти параметры не задокументированы. Я перечислю эти параметры ниже и опишу, что я понимаю. Может кто добавит описание параметров, которые непонятны.
- preFilterType: определяет, какой фильтр применяется к изображению перед вычислением несоответствий. Может быть CV_STEREO_BM_XSOBEL (фильтр Собеля) или CV_STEREO_BM_NORMALIZED_RESPONSE (может быть, разница в средней интенсивности???)
- preFilterSize: размер окна предварительного фильтра (ширина = высота окна, отрицательное значение)
- preFilterCap: обрезает вывод до [-preFilterCap, preFilterCap]. Что происходит со значениями вне интервала?
- SADWindowSize: размер сравниваемых окон на левом и правом изображении, где вычисляются суммы абсолютных разностей для нахождения соответствующих пикселей.
- minDisparity: Наименьшее несоответствие, которое принимается во внимание. По умолчанию ноль, следует установить отрицательное значение, если возможны отрицательные несоответствия (зависит от угла между обзорами камер и расстояния измеряемого объекта до камер).
- numberOfDisparities: Диапазон поиска несоответствий [minDisparity, minDisparity+numberOfDisparities].
- textureThreshold: вычислять несоответствие только в тех местах, где текстура больше (или хотя бы равна?) этому порогу. Как определяется текстура??? Дисперсия в окружающем окне???
- uniquenessRatio: цитируется из calib3d.hpp: «принимать вычисленное несоответствие d* только в том случае, если SAD(d) >= SAD(d*)(1 + uniquenessRatio/100.) для любого d != d+/ -1 в пределах диапазона поиска."
- speckleRange: Не уверен.
- попробуйSmallerWindows: ???
- roi1, roi2: Рассчитать диспропорции только в этих регионах??? Не уверен.
- speckleWindowSize: не уверен.
- disp12MaxDiff: Не уверен, но комментарий в calib3d.hpp говорит, что выполняется проверка слева направо. Угадай: пиксели сопоставляются от левого изображения к правому изображению и от правого изображения обратно к левому изображению. Несоответствия действительны только в том случае, если расстояние между исходным левым пикселем и пикселем с обратным соответствием меньше, чем disp12MaxDiff.
CV_CALIB_ZERO_DISPARITY
вstereoRectify
. Если да, тоminDisparity
следует установить равным нулю или положительному числу, потому что в этом случае несоответствие не может быть отрицательным. Для других переменных я не знаю. - person BConic   schedule 25.03.2014