Python Pillow Contour 외곽선 따내기

Python Pillow Contour 이미지 필터를 통해 외곽선을 따내는 방법을 살펴보겠습니다.

Python Pillow Contour 외곽선 따내는 방법

Python에서 Pillow를 이용하여 외곽선을 따내는 Contour 기능을 이용하려면 ImageFilter.CONTOUR를 이용하면 됩니다. 아래의 코드는 지난 번 Python Pillow Blur 처리 방법에서 정리한 filter 함수를 그대로 가져와서 재사용했습니다.

from PIL import Image, ImageFilter

def filter(img, box, image_filter):
    cropped = img.crop(box)
    filtered = cropped.filter(image_filter)
    img.paste(filtered, box)
    return img

img = Image.open("test.png")
box = (60, 20, 300, 190)
contoured = filter(img, box, ImageFilter.CONTOUR)
contoured.save("output_contoured.png")
Python

텍스트 이미지에 적용

먼저 텍스트 이미지에서 해당 필터가 어떻게 작동되는지 확인해 보겠습니다. 원본 이미지는 앞서 포스팅했던 이미지에서 사용했던 것과 동일한 원본 이미지입니다.

그림 1. Python Pillow CONTOUR 외곽선 추출에 이용할 원본 이미지
그림 1. Python Pillow CONTOUR 외곽선 추출에 이용할 원본 이미지

(60, 20)부터 (300, 190)까지 CONTOUR 필터를 적용한 결과는 아래 그림 2와 같습니다.

그림 2. Python Pillow CONTOUR 외곽선 추출한 이미지
그림 2. Python Pillow CONTOUR 외곽선 추출한 이미지

사진 이미지에 적용

이번에는 tylermike525 님이 Pixabay에 제공한 구두 사진에 CONTOUR 필터를 적용해 보도록 하겠습니다. 우선 원본이미지를 먼저 확인해 보겠습니다.

그림 3. CONTOUR 필터 이용을 위한 원본 이미지
그림 3. CONTOUR 필터 이용을 위한 원본 이미지

구두의 외곽선을 추출하는 것이 목적이므로 좌표값을 구두가 담기도록 수정했습니다.

img = Image.open("oxford-shoes-6078993_640.jpg")
box = (60, 60, 620, 600)
blurred = filter(img, box, ImageFilter.CONTOUR)
blurred.save("output_contoured.png")
Python

이번에는 CONTOUR 필터를 적용한 사진입니다.

그림 4. CONTOUR 필터 이용한 결과
그림 4. CONTOUR 필터 이용한 결과

Python에서 Pillow를 이용하여 CONTOUR 필터를 이용하는 방법 그리고 필터가 적용된 결과를 살펴보았습니다.

관련 자료

Pillow의 ImageFilter 문서를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment