Стерео выпрямление — ROI имеют разные размеры

Я сделал стереокалибровку, и я получил validPixROI1 и 2 (зеленая рамка). Теперь я хочу использовать StereoSGBM, но размеры от калибровки (от StereoRectify) не одного размера. Кто-нибудь знает, как решить эту проблему?

На самом деле я делаю что-то вроде этого:

Rect roiLeft(...);
Rect roiRight(...);

Mat cLeft(rLeft, roiLeft);
//Mat cRight(rRight, roiRight); // not same size...
Mat cRight(cRight, roiLeft);

stereoBM(cLeft,cRight, dst);

Если я обрежу свои изображения с помощью этого roi, будет ли средняя точка изображения такой же?

Вот оно работает.

введите описание изображения здесь

1

Решение

В соответствии с вики

Точка R на пересечении оптической оси и плоскости изображения. Эта точка называется главной точкой или центром изображения.

Поэтому я не думаю, что центр будет таким же.
Ссылаться на этот сайт . Здесь, в одном из примеров, основная точка составляет 302,71656,242,33386 для камеры с разрешением 640×480 пикселей, что показывает, что главная точка и центр изображения не совпадают.

1

Другие решения

Почему бы не запустить StereoBM на (необрезанных) откалиброванных изображениях, тогда вы можете использовать эти области интереса для маскировки недопустимых битов результата …

   stereoBM(rLeft,rRight, disp);
//get intersection of both rois or use target image roi, if you know the target image
cv::Rect visibleRoi = roiLeft & roiRight;
cv::Mat cDisp(disp,visibleRoi);

Теперь у вас нет проблем с различными размерами входов или разных центров и тому подобное.

ура

2

Запустите средство сравнения блоков на необработанных выпрямленных изображениях и затем используйте.

cv::getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, SADWindowSize);

Этот вызов возвращает cv :: Rect, который будет ограничительной рамкой для всех действительных пикселей на левом изображении и карте диспаратности. Допустимые пиксели — это только пиксели, которые обе камеры могут «видеть» (предостережение на окклюдированных краях).

Когда у вас есть карта несоответствия, правильное изображение становится бесполезным.

Имейте в виду, что значения roi, возвращенные из StereoRectify, представляют собой только действительные пиксели после переназначения от встроенных функций камеры.

1
По вопросам рекламы [email protected]