Appia의 IT세상

파이썬[Python, Pillow] 이미지 회전하기, 상하, 좌우 대칭(Flip) 본문

Python/Python 기본

파이썬[Python, Pillow] 이미지 회전하기, 상하, 좌우 대칭(Flip)

Appia 2020. 9. 4. 07:34
반응형

파이썬[Python, Pillow] 이미지 회전하기, 상하, 좌우 대칭(Flip)

 

이번 포스팅에서는 이미지의 회전하는 방법과 상하, 좌우 대칭하는 방법에 대해서 이야기를 해보고자 합니다. 실제로, 폰에서 이미지를 찍거나, 아니면 외부에서 데이터를 가져야할 경우 이와 같이 상하 좌우 대칭 회전을 시키거나, 아니면 이미지를 좌 또는 우로 회전 시켜야 하는 경우가 많습니다. 그래서 각각에 대해서 살펴보도록 하겠습니다. 

 

1. 이미지 상하, 좌우 대칭 

먼저, 이미지를 대칭하기 위해서는 다음과 같은 메소드를 사용해야 합니다. 

image.transpose(Image.direction*)

위에서 direction의 경우 다음과 같이 2가지로 나눌 수 있습니다. 

FLIP_LEFT_RIGHT - 좌우 대칭할 경우 입력해줍니다. 

FLIP_TOP_BOTTOM - 상하 대칭일 경우 입력해줍니다. 

 

그럼 먼저 좌우 대칭부터 살펴보겠습니다.

from PIL import Image
 
#이미지 불러오기
 
image1 = Image.open('001.PNG')
 
image1.show()
 
#이미지 좌우대칭
 
FlipImage = image1.transpose(Image.FL)
 
FlipImage.show()
cs

 

위에서 사용하면 다음과 같은 이미지가 출력됩니다. 

<원본 이미지>

원본이미지

<좌우  대칭 결과>

좌우 대칭 결과 

이와 같이 좌우 대칭된 이미지를 얻을 수 있습니다. 그럼 이번에는 상하 대칭을 해보도록 하겠습니다. 

 

from PIL import Image
 
#이미지 불러오기
 
image1 = Image.open('001.PNG')
 
image1.show()
 
#이미지 상하 대칭 
 
FlipImage = image1.transpose(Image.FLIP_TOP_BOTTOM)
 
FlipImage.show()
cs

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 

<원본 이미지>

원본 이미지 

<상하 대칭 결과>

상하 대칭 결과 

 

다음과 같이 이미지를 좌우, 상하 대칭을 해봤습니다. 그럼 이번에는 이미지를 회전 해보도록 하겠습니다. 

 

2. 이미지 회전하기 

위에서 좌우 대칭을 진행했다면, 이번에는 회전을 시켜보도록 하겠습니다. 회전에도 동일하게 transpose메소드를 사용하지만, 사용되는 인자값이 다릅니다. 다음을 살펴보겠습니다. 

image.transpose(Image.Rotate_degree*)

다음과 같은 메소드를 사용하지면 Rotate_degree의 경우 다음과 같이 3가지 중 하나를 사용합니다. 

ROTATE_90 - 좌측으로 90도 회전

ROTATE_180 - 좌측으로 180도 회전

ROTATE_270 - 좌측으로 270도 회전

위와 같이 사용합니다. 그럼 다음 코드를 살펴보면서 확인해보겠습니다. 

from PIL import Image
 
#이미지 불러오기
 
image1 = Image.open('001.PNG')
 
image1.show()
 
#이미지 회전하기 90도
 
deg_image = image1.transpose(Image.ROTATE_90)
 
deg_image.show()
cs

 

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

<원본 사진 >

원본사진 

<회전된 사진>

90도 회전된 사진 

 

이와 같이 2가지 형태로 살펴봤습니다. 첫번째로는 이미지 좌우 상하 대칭에 대해서 살펴봤고, 그 다음에는 회전에 대해서 살펴봤습니다. 

 

혹 궁금하신 점이나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments