2017-01-30 13 views
2

왼쪽 카메라에서 오른쪽 카메라와 스테레오 캘리브레이션; 나는OpenCV -`reprojectImageTo3D()`의 미터법 표현

disp = stereo.compute(dstL, dstR).astype(np.float32)/16.0 
disp = abs(disp-min_disp)/num_disp 

내가 stereoRectify

에서 Q를 가지고 reprojectImageTo3D(disp, Q) 내가 상자의 사진을 찍었 사용

0.025 (25 millimeters)

그래서 나는 3D로 포인트를 얻을 사각형의 크기를 표시했습니다 스테레오 카메라로부터 2.5 - 3 피트 떨어져서 그 위에 놓여있는 점의 xyz 좌표를 검색했습니다. 해당 Z 값은 140.8764

어떻게 해석해야합니까? 이

|1, 0, 0, -454.05216408| 
|0, 1, 0, -231.55072975| 
|0, 0, 0, 816.20826814 | 
|0, 0, 13.79730561, -0 | 

답변

1

다음 cv::reprojectImageTo3D의 출력이 유사한 단위 (여기서 다시 미터)해야한다 (이 경우 미터에) 모두 각각의 교정 기능 내에서 지속적으로 단위를 사용하는 데처럼 내 Q

보인다.

Q에서 (3,2)의 값은 카메라베이스 라인 값의 역수입니다 (여기서는 0.0725 m이 적합합니다). (0,3) 및 (1,3)의 값은 주점의 xy 좌표 (이미지의 대략 중앙, 다시 말하면 의미 있음)이며 (2,3)는 상대적 초점 길이 (이미지 폭에 대해).

불일치를 조정하지 마십시오. 그래서이 줄을 주석 :

#disp = abs(disp-min_disp)/num_disp 
+0

나는 그 줄을'python'으로 주석 처리 할 때 imshow() 할 때 흰색 만 보여줄뿐입니다. – Wreigh

+0

어디에서'0.0725m'을 얻었습니까? 너무 미안 해요,임이 힘든 시간을 보내고있어! 귀하의 도움을 주셔서 감사합니다 – Wreigh

+0

'1/13.797 = 0.0725', 불일치 맵을 표시하지 않으려는 경우, 최소 및 최대 값을 계산하고 시각화를 위해 [0,255] 8bpp로 확장하지만 재 투영을 위해 원본을 사용하십시오. – mainactual