Я работаю над стереозвуком с помощью метода stereoRectifyUncalibrated()
под OpenCV 3.0.матрица проекции от гомографии
Я откалибровать систему со следующими шагами:
- Обнаружение и характерные точки матча SURF между изображениями из 2-х камер
- Нанести
findFundamentalMat()
с согласующих paairs - Получить ректификационной homographies с
stereoRectifyUncalibrated()
.
Для каждой камеры, я вычислить матрицу вращения следующим образом:
R1 = cameraMatrix[0].inv()*H1*cameraMatrix[0];
Для вычисления 3D очков, мне нужно, чтобы получить матрицу проекции, но я не знаю, как я могу оценить вектор перемещения.
Я попробовал decomposeHomographyMat()
и это решение https://stackoverflow.com/a/10781165/3653104, но матрица вращения не совпадает с тем, что я получаю с R1.
Когда я проверяю выпрямленные изображения с помощью R1/R2 (используя initUndistortRectifyMap()
, а затем remap()
), результат кажется правильным (я проверил с эпиполярными линиями).
Я немного потерял свои знания в зрении. Таким образом, если бы кто-нибудь мог мне объяснить. Спасибо :)