[OpenCV] 카메라 왜곡 처리 정리

OpenJR·2022년 5월 15일
0

카메라 왜곡 처리 함수 중, getOptimalNewCameraMatrix()가 있으며 4번째 인자를 0과 1사이 값으로 줄 수가 있다.
이 때, 이 값들이 결과에 어떤 영향을 주는지 알아보려 한다.

cal_mtx, cal_roi = cv2.getOptimalNewCameraMatrix(mtx, dist, (width, height), 0~1, (width, height))
x, y, w, h = cal_roi

원본 사진

1. 1일 경우


왜곡된 부분을 펴주고, 보정 시 발생되는 빈 공간을 검은 색 공간으로 채워준다
x, y, w, h = 80, 41, 545, 369

2. 0일 경우


왜곡된 부분을 펴주고, 보정 시 발생되는 빈 공간을 완벽히 잘라준다.
x, y, w, h = 0, 0, 640, 480

3. 1에서 얻은 cal_roi를 사용시

1에서 얻은 x, y, w, h 값을 사용해, 얻은 이미지를 슬라이싱 할 시, 2에서 얻은 결과와 완벽히 동일한 결과를 얻을 수 있다. 하지만, 640, 480의 이미지가 아닌, 감소된 이미지를 얻게 된다.
dst = src[y:y+h+1, x:x+w+1]

profile
Jacob

0개의 댓글