2011-12-14 3 views
1

opencv를 사용하여 픽셀/화면 좌표에서 카메라 좌표를 찾고 싶습니다.이 절차를 사용하여 화면 좌표를 카메라 좌표로 변환 할 수 있습니까?

내 카메라가 보정되었고 opencv를 사용하여 내재적 매개 변수 (초점 거리 및 주점이있는 행렬) 및 외적 매개 변수 (회전 및 평행 행렬)가 있다고 가정합니다. 그런 다음 OpenCV의 3 차원 재건 this website는 말한다 : [q]는 2D 픽셀 좌표입니다

s * [q 1]^{Transpose} = [K] * [([R] * P) + T] 

, s = 1, K은 (3x3) 고유 행렬 RP이 A (3x3) 회전 행렬이다,이다 (3x1) 세계 좌표로 T은 (3x1) 변환 행렬입니다. 그래서

: 다음

[R]^{-1} * ([ [K]^{-1} * [q 1 ]^{Transpose} ] - [T]) = [P] 

그리고 : 카메라

[U] = ([R] * [P]) + [T] 

[U]은 (3x1가) 좌표입니다. 이제 픽셀 좌표 인 [q]은 이 카메라 좌표 [U]으로 변환됩니다.

픽셀 좌표를 이처럼 카메라 좌표로 변환하는 것이 맞습니까? 회전 행렬 ([R]) 또는 내장 행렬 ([K])은 항상 반전 가능합니까? 또는 회전 행렬 및/또는 고유 행렬을 반전 할 수없는 경우가 있습니까? 번입니까?

친절하게 이것을 확인할 수 있습니까?

답변

0

나는 당신을 위해 그것을 검사하기에는 너무 게을러진다. (실제로 그것을 시험해야하고, 질문이 있다면, 도움을 청하기 위해 여기에 올 것).

그러나 당신이 좋은 코드를 사용할 수 있습니다 : 그것은 당신이 원하는 것을 정확히 아니지만, 기초는 바로 다음과 같습니다

Opencv virtually camera rotating/translating for bird's eye view

+0

감사합니다 당신의 도움을 실레. 나는 그것을 직접 시도 할 것이다. 다시 한번 감사드립니다. – mvr950