[python] Pillow을 사용하여 이미지의 전경과 배경을 분리하는 방법

Pillow는 파이썬의 이미지 처리 라이브러리로, 이미지를 로드하고 편집하는 다양한 기능을 제공합니다. 이번에는 Pillow을 사용하여 이미지의 전경과 배경을 분리하는 방법을 알아보겠습니다.

1. Pillow 설치하기

Pillow를 사용하려면 먼저 Pillow 패키지를 설치해야 합니다. 아래의 명령을 사용하여 Pillow를 설치할 수 있습니다.

pip install pillow

2. 이미지 로드하기

먼저 분리할 이미지를 Pillow로 로드합니다.

from PIL import Image

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

위의 예제에서 “image.jpg”는 분리할 이미지 파일의 경로입니다. 실제 이미지 파일의 경로로 바꿔주세요.

3. 이미지 전경과 배경 분리하기

Pillow의 Image.alpha_composite() 메서드를 사용하여 이미지의 전경과 배경을 분리할 수 있습니다. 전경은 알파 채널을 기준으로 분리됩니다.

foreground = Image.new("RGBA", image.size)
background = Image.new("RGBA", image.size)

for x in range(image.width):
    for y in range(image.height):
        pixel = image.getpixel((x, y))
        alpha = pixel[3]
        
        # alpha 값이 0인 경우 배경에, 그렇지 않은 경우 전경에 픽셀을 추가합니다.
        if alpha == 0:
            background.putpixel((x, y), pixel)
        else:
            foreground.putpixel((x, y), pixel)

위의 예제에서는 Image.new() 메서드를 사용하여 전경과 배경 이미지를 생성합니다. image.getpixel() 메서드를 사용하여 각 픽셀의 알파 값을 확인하고, 해당 알파 값에 따라 전경 및 배경 이미지에 픽셀을 추가합니다.

4. 결과 저장하기

분리된 전경 이미지와 배경 이미지를 원하는 경로에 저장할 수 있습니다.

foreground.save("foreground.png")
background.save("background.png")

위의 예제에서는 save() 메서드를 사용하여 전경 이미지와 배경 이미지를 각각 “foreground.png”와 “background.png”로 저장합니다. 파일 이름은 원하는 대로 바꿔서 사용할 수 있습니다.

마무리

이번 포스트에서는 Pillow을 사용하여 이미지의 전경과 배경을 분리하는 방법을 알아보았습니다. Pillow은 다양한 이미지 처리 기능을 제공하기 때문에 여러 가지 작업을 수행할 수 있습니다. 자세한 내용은 Pillow의 문서를 참고하시기 바랍니다.