어파인 변환 - Affine Transform
어파인 변환은 영상의 이동, 전단, 확대, 회전을 조합할 때 직사각형이 평행사변형으로 변화한다.
어파인 변환을 표현하는 방법은 2 X 3 행렬의 실수형에 회전, 크기, 이동 정보가 들어가 있다.
어파인 변환은 미지수가 6개이기 때문에 6개의 식이 필요하며 점 3개가 어디로 이동했는지 알면 행렬로 표시할 수 있다.
점 세개의 이동정보를 알면 어파인 행렬로 표시가 가능하며, 세개의 이동정보로 마지막 점의 위치를 유추할 수 있다.
✔︎ 어파인 변환 행렬 - cv2.getAffineTransform
retval = cv2.getAffineTransform(src, dst)
- src: 3개의 원본 좌표점. numpy.ndarray. shape=(3, 2)
e.g) np.array([[x1 , y1 ], [x2 , y2 ], [x3 , y3 ]], np.float32) - dst: 3개의 결과 좌표점. numpy.ndarray. shape=(3, 2)
- retval : 2x3 투시 변환 행렬
점 3개의 이동 전, 이동 후 좌표를 입력하면 어파인 변환 행렬을 반환하는 함수를 제공한다.
✔︎ 어파인 변환 함수 - cv2.warpAffine
dst = cv2.warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)
[OpenCV] 영상 기하학적 변환 : 전단 변환 - cv2.warpAffine
영상의 전단 변환 - Shear transformation 영상의 전단 변환은 층 밀림 변환이라고도 한다. 이동을 하는데 모든 픽셀들이 동일하게 이동하는 것이 아니라 어떤 픽셀은 조금 이동하고 어떤 픽셀은 많이
yuls-with-ai.tistory.com
자세한 내용은 위의 페이지에서 확인 가능하다.
'OpenCV' 카테고리의 다른 글
[OpenCV with Python] 영상 기하학적 변환 : 리매핑(remapping) - cv2.remap (0) | 2022.02.02 |
---|---|
[OpenCV with Python] 영상 기하학적 변환 : 투시 변환 (0) | 2022.02.02 |
[OpenCV with Python] 영상 기하학적 변환 : 영상의 회전 - cv2.getRotationMatrix2D (0) | 2022.02.02 |
[OpenCV with Python] 영상 기하학적 변환 : 이미지 피라미드 (0) | 2022.02.02 |
[OpenCV with Python] 영상 기하학적 변환 : 영상의 대칭 변환 - cv2.flip (0) | 2022.02.02 |