2013-10-01 4 views
0

http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2 에있는 카메라 보정 데이터를 해석하는 데 문제가있어 누구든지 도움을 줄 수 있는지 궁금합니다. 기본적으로이 예제를 이해했으며 3D 오브젝트의 2D 이미지 좌표를 계산할 때 올바르게 작동합니다. 내가 얻은 2D 좌표는 이미지 경계 내에 있으며, 이는 훌륭합니다.카메라 보정 매트릭스 해석

다른 행렬에 작업을 적용하려고하면 문제가 발생합니다. 1, 데이터 세트의 맨 위에있는 지시 사항에 따라

FocalLength f=792 
ImageCentre (u,v) = (384, 288) 
Homogeneous Transform T = 



-0.94194 0.33537 -0.01657 0.00000; 
    -0.33152 -0.93668 -0.11278 0.00000; 
    -0.05334 -0.10073 0.99348 0.00000; 
    11791.10000 22920.20000 6642.89000 1.00000; 

: 관점으로 당신을 얻으려면, 이러한 보정 행렬은 데이터 집합의 변환 행렬이 카메라 2를 고려 예를 들어

에서 발견 된 비디오에 적용 첫 번째 단계는 행렬을 거꾸로하여 다음 행렬을 얻는 것입니다. 그러면 좌표를 x = (0,0,0) 점으로 취합니다.

xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by 

(792 x 3529.67074/-3661.65672 + 384, 792 x 26127.15587/-3661.65672 + 288) 
= (-763.45 + 384 , -5651.187 + 288) 
= (-379.45, -5363.187) 

답변은 이미지 경계 내에 있어야하기 때문에이 대답은 분명히 잘못되었습니다. 실제로 프로그램에서이 정보를 사용하려고 시도했을 때 3D 세계의 지상 평면에있는 점이 2D 이미지 좌표로 잘못 변형되었습니다.

누군가가 올바르게 작동하는 방법을 알면 감사하게 생각합니다.

덕분에,

답변

0

계산에 문제가 없다고 생각합니다. 이미지 경계 밖에있는 투영법을 얻으면 카메라가 그 점을 볼 수 없다는 것을 의미합니다.

언급 한 웹 페이지의 데이터에서 카메라 위치에 대한 플롯을 만들었습니다. (X, Y, Z)는 세계 기준 프레임의 축이고 (x, y, z)는 카메라 기준 프레임의 축입니다.

다음은 언급 한 웹 페이지의 첫 번째 예입니다. (244, 253.8)을 얻기 위해 점 (0,0,0)을 투영합니다. Z 축 방향을 참고 카메라 세계 기준 프레임의 원점으로보고된다 : 데이터 세트 2의

enter image description here

, 카메라 (2), Z 축 방향에주의 : 카메라 세계 기준 프레임의 기원 볼 수 없습니다 :이 방향은 의미가 여부

enter image description here

하면 응용 프로그램과 (X, Y, Z) 참조 프레임의 선택에 따라 달라집니다. 데이터 세트 2의 카메라 1도 비슷한 방향으로 배치됩니다.

관련 문제