반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART) 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

오늘은 이미지를 많이 다루고 처리하는 분들을 위해서 파이썬으로 이미지를 다룰 수 있게 해주는 Pillow라는 라이브러리에 대해서 공부해보겠습니다.

 

1. Pillow란?

 

Python Imaging Library(PIL)라는 파이썬 이미지 처리 라이브러리의 지원이 2011년 중단되고, Pillow가 PIL의 후속 프로젝트로 나왔습니다. 즉, Pillow가 공식 PIL이라고 보면 되겠네요. 실제로 import 할 때에도 PIL이라는 이름을 사용한답니다.

 

다룰 수 있는 이미지 파일 형식으로는 PPM, PNG, JPEG, GIF, TIFF, BMP 등이 있으며, 지원하지 않는 파일 형식은 라이브러리를 확장해서 새로운 파일 디코더를 만드는 것이 가능하다고 합니다.

 

PIL 이미지 작업으로는 아래의 기능들이 가능합니다.

  • 픽셀 단위의 조작
  • 마스킹 및 투명도 제어
  • 흐림, 윤곽 보정 다듬어 윤곽 검출 등의 이미지 필터
  • 선명하게, 밝기 보정, 명암 보정, 색 보정 등의 화상 조정
  • 이미지에 텍스트 추가
  • 기타 등등

 

2. Pillow 설치하고 불러오기

 

pillow를 설치하는 방법은 매우 간단합니다. 아래의 코드를 커맨드 창에서 입력해주시면 됩니다. 만약 아나콘다 패키지를 설치하신 분들은 conda 명령어를 이용하여 설치해주셔도 됩니다. (만약 이미 설치되어 있다면 이 과정을 생략하셔도 됩니다)

 

pip install pillow

 

설치가 완료되었거나 이미 설치되어 있으신 분들은 아래의 코드로 Pillow를 불러올 수 있습니다.

 

#import PIL로 불러올 시, Image 모듈은 안불러와져서 에러가 뜸

from PIL import Image

 

 그냥 import PIL로 하면 될 것 같지만 Image 모듈이 불러와지지 않는답니다. 이 부분은 다른 패키지나 라이브러리를 다룰 때에도 종종 볼 수 있는 현상인데, 아직 공부가 부족해서 왜 그런지는 잘 모르겠습니다.

 

 

3. 실습 이미지 다운로드 및 Pillow로 Open하기

 

함께 실습할 이미지를 다운로드 하기 위해서 저작권이 무료이미지를 마음껏 받을 수 있는 Pixabay로 접속해 보겠습니다.

 

https://pixabay.com/ko/

 

해당 링크에 접속하셨으면 검색창에 고양이를 검색하고 아래의 이미지를 다운로드해주세요. 사진 사이즈는 가장 작은 640x426 사이즈로 받아볼게요.

 

 

아마 파일명이 'cat-gf5d169137_640.jpg'로 다운로드 받아졌을텐데 사용하기쉽도록 'cat.jpg'로 바꿔주세요.

 

파일의 위치는 현재 파이썬 파일이 존재하는 폴더에 함께 놔둬 주세요. 이렇게 하면 복잡하게 경로를 입력해줄 필요없이 불러올 때 'cat.jpg'만 입력해주면 되거든요. 아래와 같이 말이죠.

 

# 고양이 이미지 불러와서 img라는 변수에 입력
img = Image.open('cat.jpg')

# 이미지 보여주기
img.show()

 

결과를 볼까요? 요상한 이름과 PNG로 불러와졌지만 일단 사진은 맞네요.

 

 

4. 이미지 속성 확인

 

불러온 이미지 이름, 확장자, 사이즈, 색상 모드 등의 속성을 확인 가능합니다. 출력결과는 >>> 로 표시하였습니다.

 

# 이미지 파일명
print(img.filename)
>>> cat.jpg

# 이미지 형식
print(img.format)
>>> JPEG

# 이미지 크기
print(img.size)
>>> (640, 426)

# 이미지 너비
print(img.width)
>>> 640

# 이미지 높이
print(img.height)
>>> 426

# 이미지의 색상 모드
print(img.mode)
>>> RGB

 


오늘 준비한 내용은 여기까지 입니다.

 

다음 시간에는 Pillow를 이용한 이미지의 크기 변경, 회전, 자르기, 뒤집기에 대해 공부해보겠습니다.

반응형

+ Recent posts