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