2017-01-09 2 views
0

3D 공간에 알려진 물체 (사각형)가 있고 그 모퉁이의 정확한 위치를 알고 있습니다 *. 나는 물체의 사진을 찍었고, 사진의 어떤 픽셀이 사각형의 어느 구석에 해당하는지 정확히 알 수있다. (카메라의 센서 해상도와 렌즈의 초점 거리 **도 알고 있습니다.)알려진 물체의 사진에서 카메라 위치/방향을 계산하는 방법은 무엇입니까?

카메라의 위치와 방향을 어떻게 계산합니까? C#에서 솔루션을 구현하고 싶습니다. 이것은 3D 게임 엔진에서 항상 사용되는 오히려 기본 매트릭스 작업처럼 들리지만, 반대 방향으로 실행됩니다. 나는 그것이 정말로 있기를 바란다. :)

* 모든 위치 및 길이 정보는 로컬 좌표계에서 [meter]로 표시됩니다. 위도/경도는 사용되지 않습니다.

** 초점 거리는 초점 거리에서 1m 떨어진 뷰포트의 너비와 높이로 35mm 환산해서 표현되지 않습니다.

답변

1

당신이하려는 것은 '동질화'입니다.

는 OpenCV의 라이브러리는이를 달성하기 위해 다양한 기능을 제공합니다 - 당신은 여기에 수학의 일부에 대한 읽을 수 있습니다 :

http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=findhomography

는 특히, findHomography 함수는 사이 점 대응의 목록을 이용할 것이다 샘플 이미지 및 카메라 이미지를 사용하여 카메라 위치에 대한 행렬을 계산합니다.

관련 문제