[python] 이미지 색상 조정과 채도 변경하기

이미지 처리는 컴퓨터 비전 분야에서 매우 중요한 작업입니다. 이미지의 색상을 조정하거나 채도를 변경하는 것은 이미지를 개선하고 원하는 시각 효과를 만들어내기 위한 일반적인 작업입니다. 이번 포스트에서는 Python을 사용하여 이미지의 색상 조정과 채도 변경하는 방법을 알아보겠습니다.

PIL 라이브러리 설치하기

이미지 처리를 위해서는 먼저 Python Imaging Library (PIL) 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 PIL 라이브러리를 설치할 수 있습니다.

pip install Pillow

이미지 로드하기

먼저 이미지 파일을 로드해야 합니다. PIL 라이브러리를 사용하여 이미지 파일을 로드하는 방법은 다음과 같습니다.

from PIL import Image

image = Image.open('image.jpg')

색상 조정하기

이미지의 색상을 조정하기 위해서는 이미지의 픽셀 값을 직접 변경해야 합니다. 색상을 조정하기 위해서는 RGB (빨강, 초록, 파랑) 채널 값을 조절해야 합니다.

def adjust_color(image, r_scale, g_scale, b_scale):
    pixels = image.load()
    width, height = image.size

    for x in range(width):
        for y in range(height):
            r, g, b = pixels[x, y]
            r = int(r * r_scale)
            g = int(g * g_scale)
            b = int(b * b_scale)
            pixels[x, y] = (r, g, b)

adjust_color(image, 1.2, 1.0, 0.8)

위 코드에서는 adjust_color 함수를 정의하고 이미지의 각 픽셀 값을 주어진 채널 비율에 따라 조정합니다. 예를 들어, r_scale 값이 1.2일 경우 빨간색 채널의 밝기를 1.2배로 증가시킵니다.

채도 변경하기

채도는 이미지의 색상의 진하기나 선명도를 나타냅니다. 이미지의 채도를 변경하기 위해서는 HSV (색상, 채도, 명도) 채널 값을 조절해야 합니다.

def adjust_saturation(image, scale):
    pixels = image.load()
    width, height = image.size

    for x in range(width):
        for y in range(height):
            r, g, b = pixels[x, y]
            h, s, v = image.convert('HSV').getpixel((x, y))

            s = int(s * scale)

            pixels[x, y] = Image.convert('HSV').merge((h, s, v))

adjust_saturation(image, 1.5)

위 코드에서는 adjust_saturation 함수를 정의하고 이미지의 각 픽셀의 채도 값을 주어진 비율에 따라 조정합니다. 예를 들어, scale 값이 1.5일 경우 채도를 1.5배로 증가시킵니다.

결과 저장하기

이미지의 색상 조정 또는 채도 변경 후 결과를 저장하고 싶다면 다음 코드를 사용합니다.

image.save('result.jpg')

이제 이미지 파일로 결과를 저장할 수 있습니다.

참고 자료