1. Pillow란?
Pillow는 PIL에서 시작된 오픈소스 라이브러리이다.
Pillow는 복잡한 알고리즘을 구현하기 전에 간단한 알고리즘을 구현해보고자 하는 초보자에게 적합한 라이브러리이다.
2. 이미지 읽기
pillow 이미지 모듈은 컴퓨터에 저장된 jpg 또는 png 파일 이미지를 읽기 위해 open() 함수를 제공한다.
(Open() 함수 : 픽셀 유형, 이미지 크기, 이미지 형식과 같은 정보가 들어있는 이미지 객체를 반환한다.)
주피터 노트북에 위의 코드를 입력하면
같은 디렉토리 안에 있는 buger이라는 이미지를 띄울 수 있다.
이때 이것은 임시의 이미지 파일이므로 이미지 파일 이름이 바뀌어있다.
3. 이미지 쓰기/저장
이미지를 컴퓨터의 파일에 쓰거나 저장하려면 이미지 객체의 save() 함수를 사용한다.
save() 함수는 이미지 저장하고자 하는 절대 파일 경로 또는 상대 파일 경로를 입력으로 받는다.
이번에는 buger이미지를 다른 이름으로 저장해보자.
위의 코드를 입력하면
hamburger.png가 다른 이름으로 저장된 것을 확인할 수 있다.
3. 이미지 자르기
이미지 객체는 두 좌표계를 입력으로 받고, 잘라진 이미지를 반환하는 crop() 함수를 정의한다.
이번엔 이미지를 짤라보자.
위의 코드를 입력하면
그럼 위와 같이 사진이 출력이 된다.
4. 이미지를 그레이 이미지로 변경
이번에는 사진을 그레이 이미지로 바꿔보자.
(RGB 색상 공간에서 그레이스케일 색상 공간 변환하려면 L 모드를 사용해야한다.)
위의 코드를 사용하면
기존의 컬러 이미지가 그레이 이미지로 출력되는 것을 볼 수 있다.
5. 크기 변환
이번에는 사이즈를 줄여보자.
(이미지의 크기를 변경하려면 새로운 크기를 담은 튜플을 인자로 취하는 resize()함수 사용)
위의 코드를 사용해서 200x200 사이즈로 줄여보자.
다음과 같은 결과를 볼 수 있다.
6. 회전
이번엔 사진을 90도로 돌려보자.
(이미지를 회전하려면 각도(반시계 방향임)를 인수로 취하는 rotate() 함수를 사용한다.)
다음과 같은 결과를 볼 수 있다.
7. 이미지 향상
이미지 향상에는 이미지의 대비, 밝기, 색상 밸런스, 선명도 변경과 같은 작업이 포함된다.
이것은 Pillow의 영상 함수 관련 함수인 ImageEnhance 모듈을 사용하면된다.
우선 이미지의 밝기를 조절해보자.
위의 사진처럼 아주 밝게 출력된다.
만약 enhancer.enhance(0.5).show()로 입력한다면
위와 같이 사진이 어둡게 출력되는 것을 알 수 있다.
이번엔 이미지의 밝은 부분을 더 밝게 어두운 부분을 더 어둡게 출력해보자.
위와 같이 코드를 입력하면
이미지의 밝은 부분을 더 밝게 어두운 부분을 더 어둡게 출력할 수 있다.
이것도 enhancer.enhance(0.5).show()로 변경해보자.
그러면 위의 사진과 같이 출력이 된다.
(어두운 부분은 밝아지고 밝은 부분은 어두워진다.)
'공부 > 코딩공부' 카테고리의 다른 글
[파이썬] scikit-image (6) | 2020.09.19 |
---|---|
[파이썬]문서 프로그램 다루기 - 1 (4) | 2020.08.30 |
[파이썬] 문서 프로그램 다뤄보기 (0) | 2020.08.03 |
[파이썬] GUI 계산기 (2) | 2020.08.01 |