2016-12-12 25 views
1

어안 카메라 보정을하고 있는데 예상 한 결과를 얻지 못하고 잘못된 위치를 알지 못합니다. 저는이 카메라 보정을 처음 사용합니다. 교정어안 (fisheye) 카메라 보정

Focal Length:   fc = [ 410.7476 408.0925 ] 
Principal point:  cc = [ 369.3690 299.0193 ] 
Skew:    alpha_c = [ 0.8336 ] 
Fisheye Distortion: kc = [ -0.3726 0.0931 0.0107 0.0000 ] 

에서

내 매개 변수 내 코드 undistort합니다 :

fisheye::estimateNewCameraMatrixForUndistortRectify(intrinsic, distCoeffs, input.size(), Matx33d::eye(), newK, 1); 
fisheye::undistortImage(input, output, intrinsic, distCoeffs, newK, input.size());//Size(640,360)); 

이 내 입력 이미지 :

이 내가 출력으로 무엇을 얻을 수 있습니다 :

답변

0

결과가 잘못된 기능을 잘못 사용하여 발생한다고 생각하지 않습니다. 캘리브레이션의 카메라 매트릭스가 잘못되었습니다. 다시 시도해야합니다. 잊지 마세요. 카메라로 ~ 20 개의 이미지를 가져와야합니다. 다른 뷰포트를 사용하여 체스 판이나 동그라미의 이미지를 찍었는지 확인해야합니다. 그 후 이미지를 펼치고 결과를 봅니다.

나는 또한 때때로 카메라 보정과 함께 나쁜 결과를 얻었지만 성공적인 보정과 좋은 카메라 매트릭스 이후에는 모든 것이 잘되었습니다.

심지어 Tutorial에도 그는 보정을하면 나쁜 결과가 나올 수 있다고 언급했습니다.

+0

@VincenttheOne, Matlab에서 동일한 카메라 매개 변수를 사용했습니다. 결과는 좋습니다 ... – Venkat

+0

@Venkat 흥미롭게도 Matlab의 결과를 게시 할 수 있습니까? –

+0

@VincenttheOne, [Input] (http://imgur.com/thbgrGi) 및 [Output] (http://imgur.com/CvdNf65) 링크를 확인하십시오. 그리고 이것은 OpenCV에서 사용하고있는 [내장 된 매개 변수] (http://imgur.com/Ss4jQC4)입니다. 주문이 올바른지 확인하십시오 ... 감사합니다 ... – Venkat

0

fisheye :: estimateNewCameraMatrixForUndistortRectify 및 fisheye :: undistortImage를 사용하지 않고도 어안 (fisheye) 이미지의 왜곡 현상없이 좋은 결과를 얻을 수 있습니다. fisheye :: calibrate를 통해 K (카메라 매트릭스)와 D (왜곡 계수)를 얻은 후 initUndistortRectifyMap에 직접 넣을 수 있습니다. 이것은 왜곡되지 않은 이미지 제작을위한 맵을 생성합니다 :