2012-05-27 2 views
2

cvUndistortpoints에서 새로운 카메라 매트릭스가 무엇인지 이해하는 데 문제가 있습니다. 우리는 stereocalibration 자체에서 카메라의 카메라 martix를 얻습니다. 왜 cvstreortortpoint에서 얻을 수있는 cvstereorectify에 새로운 카메라 매트릭스를 전달해야합니다. 새로운 cvUndistortPoints의 출력 후 카메라 매트릭스에서 카메라 MATIX의 dufferent ..cvundistortpoints의 새로운 카메라 매트릭스는 무엇입니까?

  void cvUndistortPoints(const CvMat* src, CvMat* dst, const CvMat* 
     cameraMatrix, const CvMat* distCoeffs, const CvMat* R=NULL, const 
     CvMat* P=NULL) 

및 참조 링크는 여기 http://opencv.willowgarage.com/documentation/c/calib3d_camera_calibration_and_3d_reconstruction.html?highlight=undistortpoints#cvUndistortPoints

+4

http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-getoptimalnewcameramatrix 사실, P, 새로운 카메라 행렬은 -input-이다. cvUndistortPoints는 그것을 생성하지 않습니다. –

답변

1

얼마나 정확하게 대답은 당신이 제공 한 문서에 한 페이지까지입니다. P는 StereoRectify에 의해 제공됩니다. - 왜곡 된 이미지의 카메라 행렬

newCameraMatrix : 여기

은, 당신이 너무 읽기해야한다, 내 친구 opencvrefman.pdf에 undistort에서 그것에 대해 말하는 것입니다. 기본적으로 은 cameraMatrix와 동일하지만 추가로 다른 매트릭스를 사용하여 결과를 축척하고 을 시프트 할 수 있습니다.

지금, 나는이 꽤 새로운 오전, 아직 StereoRectify 기능을 사용할 수있는 기회가 없었어요,하지만 난 당신이 다른 카메라가 볼 것이 무엇처럼 보이도록 이미지를 undistort 할 수 있습니다 추측하고있다.

+0

당신이 나를 명확하게 할 수 있다면, 나는 왜 우리가 cvUndistortpoints에 새로운 카메라 매트릭스를 전송하는지 매우 행복 할 것이다. 이 새로운 매트릭스를 전달할 때 특정 용도는 무엇입니까? – nbsrujan

+0

설명서의 혼란스러운 부분은 "왜곡 된 이미지의 카메라 매트릭스"입니다. 왜곡 된 이미지의 매트릭스가 아니라 가설적인 "왜곡되지 않은"이미지, 즉 출력 이미지의 매트릭스입니다. 카메라 행렬에는 2 개의 초점 길이 (x와 y에 대해)와 2 교대 - "주점"좌표가있는 4 개의 중요한 필드가 있습니다. 처음 두 개는 크기 조정을 허용하고, 후자는 크기 조정을 허용합니다. 또한 inNewCameraMatrix에 카메라 보정의 외부 매개 변수 인 회전 행렬의 역수를 곱하여 한 번에 이미지를 수정하려고했습니다 (z 축을 따라 정확하게 보임). –

3

단안 카메라의 경우 newCameraMatrix는 일반적으로 cameraMatrix와 같거나 크기 조정에 대한 더 나은 제어를 위해 GetOptimalNewCameraMatrix로 계산할 수 있습니다.

체크 아웃

관련 문제