Appia의 IT세상

파이썬[Python, Pillow] 이미지 흐림(Blur) 처리 하기 본문

Python/Python 기본

파이썬[Python, Pillow] 이미지 흐림(Blur) 처리 하기

Appia 2020. 9. 6. 07:41
반응형

파이썬[Python, Pillow] 이미지 흐림(Blur) 처리 하기 

 

다양한 이유에서든지 이미지를 흐리게 하는 처리를 많이 합니다. 대부분 필터를 적용하여 이와 같이 이미지를 흐리게 하는 경우가 많습니다. pillow라이브러이에서도 ImageFilter에서 이와 같은 부분에 대해서 제공을 하고 있습니다. 따라서 이번 포스팅에서는 이미지를 흐리게 하는 기법에 대해서 살펴보고자 합니다. 

 

pillow에서는 3가지 형태로 이미지를 흐리게 하는 방식을 지원합니다. 

 

BLUR 

Box BLUR

Gaussian BLUR

 

일단 각 부분에 대해서 살펴보겠습니다. 

 

1. BLUR 필터 사용 

먼저 다음 코드를 바탕으로 한번 살펴보겠습니다. 

from PIL import Image, ImageFilter
 
#이미지 불러오기
image1 = Image.open('IMG_3368.JPG')
 
image1.show()
 
#이미지 blur 필터 적용
blurI = image1.filter(ImageFilter.BLUR)
 
blurI.show()
 
blurI.save("blurImage.jpg")
cs

 

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

<원본 사진>

원본 사진 

<blur 필터 적용 사진>

blur 필터 적용 사진 

위에 BLUR 방식에서는 convolution matrix을 사용해서 변환 해주는 것으로 알고 있습니다. 따라서 사용자가 입력한 인자값은 없습니다. 

 

2. Box BLUR 필터 사용 

Box BLUR의 경우 인자값을 가지고 있습니다. 특정 범위내에서 반경을 바탕으로 흐릿한 값의 정도를 지정할 수 있습니다. 그럼 다음 코드를 한번 살펴보겠습니다. 

from PIL import Image, ImageFilter
 
#이미지 불러오기
image1 = Image.open('IMG_3368.JPG')
image1.show()
 
#BoxBlur 사용
blurI = image1.filter(ImageFilter.BoxBlur(5))
 
blurI.show()
 
blurI.save("BoxblurImage.jpg")
cs

위의 코드에서 보시는 바와 같이 BoxBlur의 경우 인자값을 넣어줘야 합니다. 이 값에 비례해서 흐릿함의 정도가 변경이 됩니다. 그럼 결과를 한번 살펴보겠습니다. 원본의 경우 위의 예제와 동일합니다. 

<BoxBlur 적용된 사진>

BoxBlur 적용된 사진 

3. Gaussian BLUR 필터 사용 

Gaussian BLUR의 경우 가우스 곡선을 이용하여 흐림함을 적용하는 것으로 알고 있습니다. 그럼, 코드를 한번 살펴보겠습니다. 

from PIL import Image, ImageFilter
 
#이미지 불러오기
image1 = Image.open('IMG_3368.JPG')
 
image1.show()
 
#BoxBlur 사용
blurI = image1.filter(ImageFilter.GaussianBlur(5))
 
blurI.show()
 
blurI.save("GauImage.jpg")
cs

결과는 다음과 같이 나옵니다. 

<Gaussian BLUR 적용된 사진>

Gaussian Blur 적용한 사진 

실제로 저의 경우 비전문가로 Box Blur/ Gaussian Blur 차이을 명확하게 알지 못합니다. 하지만, 위의 부분에서 편하시는 것을 사용하여, 이미지 흐림 처리을 할수가 있을 것입니다. 

 

 

혹 궁금 하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

 

반응형
Comments