2017-05-04 11 views
0

OpenCV를 사용하여 어안 (fisheye) 이미지를 왜곡 시키려고합니다. Photo from wikipedia enter image description hereOpenCV를 사용하여 자른 어안 (fistheye) 이미지를 왜곡시키는 법

:이 같은 어안 이미지를 자르해야 이제

img = cv2.imread('img.jpeg') #image path of pic to distort 
h,w = img.shape[:2] 

Knew = cv2.fisheye.estimateNewCameraMatrixForUndistortRectify(K,D,(w,h),None) 
Knew[(0,1), (0,1)] = .3* Knew[(0,1), (0,1)] 

mapx, mapy = cv2.fisheye.initUndistortRectifyMap(K,D,None,Knew,(w,h),5) 
img_undistorted = cv2.remap(img, mapx, mapy, cv2.INTER_LINEAR) 

cv2.imshow('undistorted', img_undistorted) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

: 이미 카메라를 보정하고, 또한 다음과 같은 코드를 사용하여 괜찮은 왜곡되지 않은 이미지를 받고 (그냥 관련 부분을 게시)

이 사진은 데모 용입니다. 어안 렌즈의 매핑 기능을 사용하여 오른쪽에서 자르는 지점을 결정했습니다. 그러나 위와 동일한 코드를 사용하면 출력이 정말 이상하게 왜곡 된 그림이됩니다.

나는 또한 먼저 변형되지 않은 다음 자르기에 대해 생각해 봤지만, 나는 이런 식으로 자르려면 정확히 계산할 수 없습니다. 그래서 먼저 이미지를 잘라야합니다.

그래서 대칭으로 자른 어안 (fisheye) 이미지가 올바르게 왜곡되지 않습니까?

답변

0

이미지를 이동하고 자르면 물고기 카메라 보정 매개 변수가 새 카메라에 맞지 않습니다.

제로 값을 패딩하여 iamge를 대칭으로 만들 수 있습니다. 요점은 두 이미지의 중심점을 같은 위치에 만드는 것입니다.

참조 :

http://docs.opencv.org/3.0-beta/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#fisheye-estimatenewcameramatrixforundistortrectify

http://answers.opencv.org/question/64614/fisheyeundistortimage-doesnt-work-what-wrong-with-my-code/

+0

그래서 당신은 내가 검은 색 픽셀로 자른 영역을 "작성"의 이미지 만 종류를 자르한다는 의미는? – sybilcut

+0

그건 내가 시도할만한 것입니다. –

+0

그것은 나를 위해 작동하지 않았다. (나는 단지 몇 가지 다른 매개 변수를 튜닝하려고 시도 할 것이다 .... – sybilcut