Ваши «стерео» изображения в порядке. Что вы уже сделали, так это решили проблему соответствия: на обоих изображениях вы указали точки «А». Это означает, что вы знаете, какой пиксель соответствует другой точке маркировки «A».
То, что вы хотите сделать, это триангулировать, где находится ваша камера. Вы можете сделать это только предварительно откалибровав камеру. Это уже внутри OpenCV.
http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html
Это дает вам точный вектор / луч света для каждого вектора и оптический центр ваших камер, через которые проходит луч. Кроме того, вам нужна стерео калибровка. Это устанавливает ориентацию и положение каждой камеры относительно друг друга.
С этого момента ваша триангуляция проста, зная положение пикселя на обоих изображениях точки «A». У вас есть
- Расположение и ориентация камеры 1 и камеры 2
- Вектор оптического луча (местоположение в пикселях) с камер для обозначения «A».
Таким образом, у вас есть 2 местоположения в космосе и 2 луча от них. Пересечение этих лучей - ваш трехмерный ответ.
Обратите внимание, что на практике лучи никогда точно не пересекаются (2 линии в 3D редко проходят), поэтому вам необходимо приблизиться. Используйте функцию opencv triangulatePoints (), используя вход стереокалибровки и индекс пикселей, относящийся к метке A.