본문 바로가기
함수 설명/컴퓨터 비전 (OpenCV, PIL)

[PIL] 이미지 히스토그램 생성: Image.histogram() 사용 및 설명

by First Adventure 2024. 10. 14.
반응형

소개

  Image.histogram() 함수는 Pillow 라이브러리에서 이미지의 히스토그램 데이터를 생성하는 함수로, 이미지의 색상 분포나 픽셀 강도를 분석하는 데 사용됩니다. 이 함수는 이미지의 각 픽셀 값을 기준으로 그 빈도를 계산하여 리스트 형태로 반환합니다. 주로 이미지 처리, 필터링, 그리고 색상 보정 작업에서 활용되며, 이미지를 분석하거나 특정 색상 범위의 분포를 확인하는 데 유용합니다.

 

기본 사용법

from PIL import Image

# 이미지 파일 열기
img = Image.open('sample_image.jpg')

# 이미지 히스토그램 생성
histogram = img.histogram()

# 히스토그램 출력 (256 값씩 그룹화하여 출력)
print(histogram[:256])  # R 채널 히스토그램
print(histogram[256:512])  # G 채널 히스토그램
print(histogram[512:])  # B 채널 히스토그램

상세 설명

  • Image.histogram(): 이 함수는 이미지의 모든 채널에 대해 각 픽셀 값이 등장하는 빈도를 세고, 그 결과를 리스트 형태로 반환합니다. 반환되는 리스트의 길이는 이미지의 모드에 따라 다르며, RGB 모드의 경우 256개의 픽셀 값이 각 채널에 대해 256개씩 총 768개의 값이 반환됩니다.
    • 예시: RGB 이미지의 경우 histogram[:256]은 R 채널의 히스토그램, histogram[256:512]은 G 채널의 히스토그램, histogram[512:]은 B 채널의 히스토그램입니다.
  • 활용
    • 이미지 분석: 히스토그램을 통해 이미지의 색상 분포를 분석하거나, 특정 색상 또는 밝기 값의 빈도를 확인할 수 있습니다. 예를 들어, 어두운 영역이 많이 차지하는지, 특정 색상이 지배적인지 확인할 수 있습니다.
    • 이미지 필터링: 히스토그램을 분석하여 이미지 필터링이나 보정에 활용할 수 있습니다. 예를 들어, 히스토그램 균등화를 통해 이미지의 명암 대비를 향상시킬 수 있습니다.
    • 이미지 색상 보정: 특정 색상 채널의 히스토그램을 이용하여 색상을 조정하거나 이미지를 개선할 수 있습니다.

 

라이센스

  Pillow 라이브러리는 PIL 라이센스를 따릅니다. 자세한 라이센스 정보는 Pillow GitHub에서 확인할 수 있습니다.

 

관련 내용

  [PIL] 이미지 픽셀 값 가져오기: Image.getpixel() 사용 및 설명
  [PIL] 이미지 픽셀 값 설정하기: Image.putpixel() 사용 및 설명
  [PIL] 이미지 히스토그램 생성: Image.histogram() 사용 및 설명

 

반응형