Я сделал стереокалибровку, и я получил 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, будет ли средняя точка изображения такой же?
Вот оно работает.
В соответствии с вики
Точка R на пересечении оптической оси и плоскости изображения. Эта точка называется главной точкой или центром изображения.
Поэтому я не думаю, что центр будет таким же.
Ссылаться на этот сайт . Здесь, в одном из примеров, основная точка составляет 302,71656,242,33386 для камеры с разрешением 640×480 пикселей, что показывает, что главная точка и центр изображения не совпадают.
Почему бы не запустить 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);
Теперь у вас нет проблем с различными размерами входов или разных центров и тому подобное.
ура
Запустите средство сравнения блоков на необработанных выпрямленных изображениях и затем используйте.
cv::getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, SADWindowSize);
Этот вызов возвращает cv :: Rect, который будет ограничительной рамкой для всех действительных пикселей на левом изображении и карте диспаратности. Допустимые пиксели — это только пиксели, которые обе камеры могут «видеть» (предостережение на окклюдированных краях).
Когда у вас есть карта несоответствия, правильное изображение становится бесполезным.
Имейте в виду, что значения roi, возвращенные из StereoRectify, представляют собой только действительные пиксели после переназначения от встроенных функций камеры.