Stereo rectify - ROI имеют разные размеры

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

На самом деле я делаю что-то по ссылке:

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

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

stereoBM(cLeft,cRight, dst);

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

Здесь это работает.

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


person Viatorus    schedule 13.06.2014    source источник


Ответы (3)


Согласно вики

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

Так что я не думаю, что центр будет таким же. См. этот сайт . Здесь в одном из примеров главная точка — 302.71656,242.33386 для камеры 640x480 пикселей, что показывает, что главная точка и центр изображения не совпадают.

person milind_mayank    schedule 13.06.2014

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

   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);

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

Ваше здоровье

person QED    schedule 13.06.2014

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

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

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

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

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

person p0wdr.com    schedule 08.11.2017