Python 사진 회전 rotate() flip() OpenCV 예제

파이썬에서 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을 설정해 상하좌우 반전되었습니다.

댓글