본문 바로가기

빅데이터

[EDA] PIL(Python Imaging Library) pillow 정리

 

pillow module : 이미지 분석 및 처리를 위한 라이브러리. 다양한 이미지 파일 형식을 지원하고, 강력한 이미지 처리와 그래픽 기능을 제공하는 이미지 프로세싱 라이브러리의 한 종류이다.

 

[주요기능]

- pixel 단위의 조작

- 마스킹 및 투명도 제어

- 흐림, 윤곽 보정, 다듬어 윤곽 검출 등의 이미지 필터

- 선명하게, 밝기 보정, 명암 보정, 색 보정 등의 화상 조정

- 이미지에 텍스트 추가

- 기타 등등

 

※ 모듈 설치는 <pip install pillow>로 하지만, import 할 때는 from PIL import Image처럼 모듈을 import 해야 한다.

1. .resize((tuple)) : 크기 변경

<resampling option>

- Image.BICUBI : 크기 조정을 위해 출력 값에 기여할 수 있는 모든 pixel에서 "삼차 보간법"을 사용하여 출력 pixel값을 계산한다. 다른 변환의 경우에는 input 이미지의 4x4 환경에 대한 "큐빅 보간"이 사용된다.

- Image.BILINEAR : 크기 조정을 위해 출력 값에 기여할 수 있는 모든 pixel에서 "선형 보간법"을 사용하여 출력 pixel값을 계산한다. 다른 변환의 경우에는 input 이미지의 2x2 환경에 대한 "선형 보간"이 사용된다.

- Image.BOX : 소스 이미지의 각 pixel은 동일한 weight를 가진 대상 이미지의 한 pixel에 기여한다. up scalling의 경우에는 NEAREST를 사용.  resize( ) 및 thumbnail( ) 메소드에서만 사용 가능.

- Image.HAMMING : BINEAR보다 선명한 이미지를 생성. BOX처럼 로컬 수준의 전위가 없으며, resize( ) 및 thumbnail( ) 메소드에서만 사용 가능.

- Image.LANCZOS : 출력 값에 기여할 수 있는 모든 pixel에서 고품질 LANCZOS 필터(잘린 sinc)를 사용하여 출력 pixel값을 계산한다. resize( ) 및 thumbnail( ) 메소드에서만 사용 가능.

- Image.NEAREST : input 이미지에서 가장 가까운 pixel 하나를 선택한다. 다른 모든 입력 pixel은 무시함.

 

2. .crop((left, upper, right, lower)) : 자르기

 

3. .rotate(int) : 회전

 

4. .transpose(option) : 대칭

<option>

- Image.FLIP_LEFT_RIGHT : 좌우 대칭

- Image.FLIP_TOP_BOTTOM : 상하 대칭

- Image.ROTATE_90 : 좌측 90º 회전

- Image.ROTATE_180 : 좌측 180º 회전

- Image.ROTATE_270 : 좌측 270º 회전

 

5. .filter(option) : 필터링

<option>

- ImageFilter.BLUR : 흐리게 (고정된 값)

- ImageFilter.BoxBlur : 흐리게 (사용자 임의 조정값)

- ImageFilter.GaussianBlur : 흐리게 (사용자 임의 조정값)

- ImageFilter.CONTOUR 

- ImageFilter.DETAIL 

- ImageFilter.EDGE_ENHANCE 

- ImageFilter.EDGE_ENHANCE_MORE 

- ImageFilter.EMBOSS 

- ImageFilter.FIND_EDGES 

- ImageFilter.SHARPEN 

- ImageFilter.SMOOTH 

- Image Filter.SMOOTH_MORE 

 

6. .paste(mode, image_size, background_color) : 합치기

new( ) 함수를 사용하여 새로운 이미지를 생성하여 이 곳에 여러개의 이미지를 붙여 넣을 수 있다.

 

7. .save(image_path) : 저장

* 변수 저장 없이 경로 지정해야 가능하다.

 

8. .thumbnail(tuple) : 썸네일 생성

* tuple int형으로 사이즈 지정. 그냥 int형으로 입력 시 TypeError:'int' object is not iterable 발생

 

 

참고)

https://ddolcat.tistory.com/690

 

[Python] 파이썬 이미지 처리 pillow(PIL) 설치 및 사용 예제 총정리:드루와

이미지 분석 및 처리를 쉽게 할 수 있는 라이브러리(Python Imaging Library : PIL)가 있습니다. 바로 pillow모듈입니다. 다양한 이미지 파일 형식을 지원하며, 강력한 이미지 처리와 그래픽 기능을 제공하

ddolcat.tistory.com