파이썬에서 OpenCV를 사용해 사진을 회전시키거나 반전 시키는 방법을 알아보겠습니다.
화면을 회전하고 싶은 경우에는 rotate()를 사용합니다.
상하좌우로 반전하고 싶은 경우에는 flip()를 사용합니다.
아래 사진을 샘플로 사용하겠습니다.
샘플 이미지
사진 회전 cv2.rotate()
● ROTATE_90_CLOCKWISE: 시계 방향 90도 회전
● ROTATE_90_COUNTERCLOCKWISE: 반시계 방향 90도 회전
● ROTATE_180: 180도 회전
샘플 소스
import cv2
img = cv2.imread('C:/Users/Administrator/Desktop/python/origin/python.png')
img_rotate_90_clockwise = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_rotate_90_clockwise.png', img_rotate_90_clockwise)
img_rotate_90_counterclockwise = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_rotate_90_counterclockwise.png', img_rotate_90_counterclockwise)
img_rotate_180 = cv2.rotate(img, cv2.ROTATE_180)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_180.png', img_rotate_180)
ROTATE_90_CLOCKWISE를 사용해 시계 방향으로 90도 회전했습니다.
ROTATE_90_COUNTERCLOCKWISE를 사용해 반시계 방향 90도 회전했습니다.
ROTATE_180를 사용해 180도 회전했습니다.
90도 회전이 아닌 각도를 설정하고 싶은 경우에는 warpAffine()를 사용해서 회전시키면 됩니다.
사진 반전 cv2.flip()
사진을 반전 시키고 싶은 경우에는 flip()를 사용합니다.
● flipcode = 0 : 상하 반전
● flipcode > 0 : 좌우 반전
● flipcode < 0 : 상하좌우 반전
샘플 소스
import cv2
img = cv2.imread('C:/Users/Administrator/Desktop/python/origin/python.png')
img_flip_ud = cv2.flip(img, 0)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_flip_ud.jpg', img_flip_ud)
img_flip_lr = cv2.flip(img, 1)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_flip_lr.jpg', img_flip_lr)
img_flip_ud_lr = cv2.flip(img, -1)
cv2.imwrite('C:/Users/Administrator/Desktop/python/img/python_flip_ud_lr.jpg', img_flip_ud_lr)
flipcode = 0을 설정해 사진이 위아래로 반전되었습니다.
flipcode > 0을 설정해 사진이 왼쪽과 오른쪽이 반전되었습니다.
flipcode < 0을 설정해 상하좌우 반전되었습니다.
댓글