Этот вопрос задавался по-разному много раз, многие люди подходят к этой проблеме по-разному. Вот почему я не уверен в своей методологии, было бы хорошо, если бы кто-то мог сказать мне, правильно ли я все делаю.
Шаги, которым я следую, -
- Настройка пара стереокамер.
- Откалибруйте обе камеры по отдельности, чтобы получить матрицы камер, коэффициенты искажения, используя
calibrateCamera
- Затем мы вычисляем R, T, E, F, используя
stereoCalibrate
- Рассчитать R1, R2, P1, P2 и Q, используя
stereoRectify
- Поскольку я хочу найти трехмерные координаты указанной c точки в моей сцене, я извлекаю координаты этой точки на обоих изображениях, и после этого я использую
triangulatePoints
, чтобы получить трехмерные точки в однородных координатах.
Верны ли шаги, которым я следую? У меня были проблемы с документацией OpenCV, поэтому мне потребовалось некоторое время, чтобы сформулировать шаги, копаясь в документации. Люди подходили к этой проблеме в OpenCV по-разному, некоторые даже создали Фундаментальные и Основные Матрицы, используя некоторые вспомогательные функции в документации OpenCV, но я думаю, что stereoCalibrate
и stereoRectify
сами используют эти вспомогательные функции.