이미지에서 색상 추출하기
이미지에서 색상을 추출하고 싶을 때에는 PIL라이브러리를 이용하면 된다.
PIL라이브러리는 Python Image Library의 약자로, 직관적인 이름 그대로 파이썬에서 이미지를 처리할 수 있도록 하는 라이브러리라고 생각하면 될 것 같다.
사용할 라이브러리는 PIL이지만, 설치는 Pillow로 해야 한다.
Pillow가 PIL의 후속 프로젝트로 등장했는데, python3에서는 PIL이 지원되지 않기 때문이라고 한다.
▼ Pillow패키지 공식 문서
https://pillow.readthedocs.io/en/stable/
Pillow
Pillow is the friendly PIL fork by Jeffrey A. Clark (Alex) and contributors. PIL is the Python Imaging Library by Fredrik Lundh and contributors. Pillow for enterprise is available via the Tidelift...
pillow.readthedocs.io
Pillow에서 지원하는 파이썬 버전은 다음과 같다.
가장 최신 버전들로 맞추면 될 듯한데, 아무래도 이전 버전들이 더 다양한 Pillow 버전을 다루고 있다.

Pillow설치하기
# cmd에서 pip 로 설치하는 경우
pip install Pillow
# conda에서 설치하는 경우
conda install -c anaconda pillow
# 주피터노트북 셀에서 설치하는 경우
!pip install Pillow
다른 라이브러리들과 동일하게 설치하면 된다.
이미지 불러와서 띄우기
# PIL의 Image 모듈 불러오기
from PIL import Image
# 이미지 읽어오기
img = Image.open('data/image/test1.png')\
# 이미지 띄우기
img.show()
이미지를 읽기 위해서는 Image의 open매서드를 활용하면 된다.
이후 가져온 이미지를 show를 활용해서 열게 되는데, 새로운 창으로 열리게 된다.

짜잔
이미지 사이즈 확인하기
width, height = img.size
print(width, height)
가져온 이미지를 img변수에 담았다면 여러 속성 정보를 확인할 수 있다.
그 중 size를 활용하면 불러온 이미지의 가로, 세로의 길이를 가져올 수 있다.

이미지의 RGB/RGBA 색상 값 확인하기
pixel_values = list(img.getdata())
print(pixel_values[0])
getdata매서드를 이용하면 이미지의 픽셀 데이터를 가져올 수 있다.
각 이미지의 픽셀 데이터는 RGB 또는 RGBA값으로 표현된다.

이미지의 픽셀 단위 정보 중 원하는 픽셀을 선택하면 된다.
middle_pixel_index = (height//2) * width + (width //2)
middle_pixel = pixel_values[middle_pixel_index]
middle_pixel
이미지 중앙의 RGB값이 궁금했기 때문에 이렇게 작성하면

RGBA값이 나오게 된다.
튜플의 맨 마지막 값은 투명도로 알고 있음.
앞의 3가지를 검색하면

우리가 불러왔던 이미지의 가운데 색상인 적갈색이 잘 출력된 것을 확인할 수 있다.