OpenCV 비전 실무14장 · 영상 기하학 변환과 Affine, Perspective20 / 21← 이전목차다음 →MetaContents

14장. 영상 기하학 변환과 Affine, Perspective

정리

크기 맞추기, 뒤집기와 아핀 변환, 원근 변환의 세 칸으로 14장을 요약한 인포그래픽
  • 기하학 변환은 칸의 값이 아니라 자리를 옮깁니다. 그림 함수와 변환 함수는 (x, y), 배열은 [y, x] 순서입니다.
  • cv2.resize 의 dsize 는 (가로, 세로), 결과 shape 는 (세로, 가로) 입니다. 비율을 지키려면 한 변만 정하고 다른 변은 같은 배율로 계산합니다(320×240 → 200×150).
  • 보간법은 새 칸을 채우는 방법입니다. 100 과 200 사이를 LINEAR 는 125, 175 로 채웁니다. 동심원을 4분의 1로 줄이면 NEAREST 는 표준편차 107.0 의 물결무늬, AREA 는 17.1 의 고른 회색이 되었습니다. 줄일 때는 AREA, 키울 때는 LINEAR·CUBIC, 마스크는 NEAREST 입니다.
  • 정해진 크기에 맞추는 방법은 늘리기(모양을 잃음), 가운데 자르기(가장자리를 잃음), 레터박스(여백이 생김) 세 가지입니다. 320×180 사진을 128×128 레터박스로 맞추면 여백 비율이 0.438 이었습니다.
  • cv2.flip(1 좌우, 0 위아래, -1 둘 다)과 cv2.rotate 는 값을 바꾸지 않고 자리만 바꿉니다. 90도 돌리면 가로와 세로가 바뀝니다.
  • 아핀 변환은 2×3 표로 점을 옮깁니다. 줄마다 곱해서 더하면 (40, 40) 이 [[1, 0, 60], [0, 1, 20]] 으로 (100, 60) 이 됩니다. 회전 표는 cv2.getRotationMatrix2D 가, 세 점의 표는 cv2.getAffineTransform 이 계산합니다. 30도 돌린 320×240 그림은 397×368 로 키워야 모서리가 잘리지 않습니다.
  • 원근 변환은 점 네 쌍으로 3×3 표를 만들어 비스듬한 면을 폅니다. 점은 왼쪽 위부터 시계 방향으로 맞춥니다. 문서 세 장을 편 결과의 MAE 는 7.19~9.63 으로, 크기만 맞춘 77 대보다 훨씬 작았습니다.
← 이전 절14장 · 프로젝트 1 — 비스듬히 찍힌 문서 바로 펴고 크기 맞추기다음 절 →14장 · 확인문제와 해답