Сопоставление пикселя одного изображения с другим изображением в стереозрении

Прямо сейчас у меня есть две камеры, и я заканчиваю шаг калибровки стерео для захвата внутренних и внешних параметров. Я извлек несколько характерных точек в левой камере и задаюсь вопросом, как сопоставить их с правым изображением. Кто-нибудь может помочь, пожалуйста?

Я попытался вычислить их по матрице поворота и перемещения каждой камеры вот так.

С функцией SolvePnP в openCV я получил R1 T1 для левой камеры и R2 T2 для правой камеры.

В ту же мировую точку [X,Y,Z] я могу попасть

[x1,y1,z1] = R1[X,Y,Z]+T1

и

[x2,y2,z2] = R2[X,Y,Z]+T2 

которые камера координирует в своей собственной системе координат.

Когда я пытаюсь сопоставить [x1,y1,z1] и [x2,y2,z2] с помощью

R2*inv(R1)[x1,x2,x3]+(T2-R2*inv(R1)*T1) = [x2,y2,z2]

Я получил этот результат.

изображение слева — результат сопоставления угла шахматной доски с левого изображения методом, описанным выше; изображение справа — это углы правого изображения, вычисленные с помощью findChessBoardCorner: изображение слева — результат сопоставления угла шахматной доски с левым изображением методом  выше; изображение справа — это углы правого изображения, вычисленные с помощью findChessBoardCorner


person EdwardLye    schedule 17.10.2017    source источник
comment
Существует очень хороший учебник, который вы можете найти здесь   -  person I.Newton    schedule 17.10.2017


Ответы (2)


Матрицы вращения и перемещения сопоставляют 3D-координаты в мировой системе координат с локальными 3D-координатами камеры. Чтобы найти преобразование 2D-2D, я предлагаю вам использовать гомографию:

https://docs.opencv.org/2.4/modules/calib3d/doc/camera_dication_and_3d_reconstruction.html?highlight=findhomography#findhomography

person Kamil Szelag    schedule 17.10.2017

Результаты функции "findHomography"

Вычисление отношения отображения точек с помощью «findHomography» хорошо работает только на плоскости шахматной доски (которое я получил отношение из углов на доске). Однако, когда я вычисляю точки переднего плана/фона по H, результаты показаны выше.

Проблема должна заключаться в том, что «матрица H работает в 2-D системе координат (или объект на плоскости, такой как шахматная доска выше, поэтому она работает, если я отражаю точку шахматной доски на другое изображение), объект переднего/фонового плана их координаты находится в трехмерной системе координат, которая отображается на изображении, что означает, что матрица не сработала (на самом деле я думаю, что она не сработала, она сопоставила точку на расширенной позиции шахматной доски)"

Чтобы решить упомянутую проблему, я думаю, что идея заключается в том, чтобы «перепроецировать точку изображения в трехмерную систему координат (возможно, с помощью камеры ToF или другим способом), вызвать функцию «solvePnP», чтобы получить отношение позы R, T между точкой мира слева и справа. камеры. выберите любую точку на левом изображении, перепроецируйте обратно в трехмерную систему координат и обратно спроецируйте на правое изображение с помощью R, T"

person EdwardLye    schedule 18.10.2017