-
회전(Rotate)Python study/opencv 2023. 11. 30. 20:12
메인 코드
import cv2 src = cv2.imread(r"F:\dev\opencv\image\ferret.jpg", cv2.IMREAD_COLOR) height, width, channel = src.shape matrix = cv2.getRotationMatrix2D((width/2, height/2), 90, 1) dst = cv2.warpAffine(src, matrix, (width, height)) cv2.imshow("src", src) cv2.imshow("dst", dst) cv2.waitKey() cv2.destroyAllWindows()
핵심코드
height, width, channel = src.shape matrix = cv2.getRotationMatrix2D((width/2, height/2), 90, 1) dst = cv2.warpAffine(src, matrix, (width, height))
1)
height, width, channel = src.shape
.shape 속성을 이용하여 해당 이미지의 높이, 너비, 채널 값을 저장한다.
높이와 너비는 회전 중심점 설정을 위함이다.
2)
matrix = cv2.getRotationMatrix2D((width/2, height/2), 90, 1)
2x3 회전 행렬 생성 함수 (cv2.getRotationMatrix2D())로 회전 변환 행렬을 계산합니다.
matrix = cv2. getRotationMatrix2D(center, angle, scale)는 중심점(center), 각도(angle), 비율(scale) 로
매핑 변환 행렬( matrix )을 생성합니다.
3)
dst = cv2.warpAffine(src, matrix, (width, height))
아핀 변환 함수(cv2.warpAffine)로 화번변환을 계산합니다.
dst = cv2.warpAffine(src, M, dsize)는 원본 이미지(src)에 M(아핀 맵 행렬)을 적용하고 출력 이미지 크기 (dsize)로 변형해서 출력 이미지 (dst)를 반환 합니다.
코드 참조 :
https://github.com/CBike/opencv/blob/master/Rotate.py
'Python study > opencv' 카테고리의 다른 글
크기 조절 (Resize) (0) 2023.12.11 대칭(Flip, Symmetry) (0) 2023.11.30 비디오 출력 (0) 2023.11.29 opencv - 이미지 다루기 (0) 2023.11.29 Opencv- 영상다루기 (0) 2022.03.24