본문 바로가기
파이썬 (Python)/딥러닝 (Deep Learning)

Python opencv 이용하여 이미지 흐림 효과 주는 방법

by ★√★ 2021. 2. 24.

안녕하세요, Davey입니다. 오늘 포스팅할 내용은 opencv로 원하는 이미지에 흐림 효과를 주는 방법에 대해서 설명 드리도록 하겠습니다. 커널의 크기를 지정하여 이미지를 흐리게 하는 것입니다. 

 

Python opencv 이용하여 이미지 흐림 효과 주는 방법 썸네일

 

 

opencv를 이용하여 흐림 효과 주기

:  일단 이미지에 흐림효과를 주기 위해서는 이전 포스팅에도 계속적으로 반복하면서 설명 드리는 부분이지만 흐림 효과를 줄 이미지를 불러와야 합니다. 이 부분에 대한 코드와 이진화 하는 코드를 같이 설명 드리도록 하겠습니다.

 

코드 분석

- cv2.blur(흐림효과를 줄려고 희망하는 이미지, (커널 X 크기, 커널 Y 크기), 앵커 포인트, 픽셀 외삽법)

1) 커널 크기는 이미지에 흐림 효과를 적용할 크기를 설정합니다. 크기가 클수록 더 많이 흐려짐

2) 앵커 포인트는 커널에서의 중심점을 의미합니다. (-1, -1)로 사용할 경우, 자동적으로 커널의 중심점으로 할당

3) 픽셀 외삽법은 이미지를 흐림 효과 처리할 경우, 영역 밖의 픽셀은 추정해서 값을 할당함

[이미지 밖의 픽셀을 외삽하는데 사용되는 테두리 모드입니다. 외삽 방식을 설정]

 

픽셀 외삽법에 대한 종류는 아래와 같이 정리하였습니다. 

 

픽셀 외삽법 속성

의미

cv2.BORDER_CONSTANT

iiiiii | abcdefgh | iiiiiii

cv2.BORDER_REPLICATE

aaaaaa | abcdefgh | hhhhhhh

cv2.BORDER_REFLECT

fedcba | abcdefgh | hgfedcb

cv2.BORDER_WRAP

cdefgh | abcdefgh | abcdefg

cv2.BORDER_REFLECT_101

gfedcb | abcdefgh | gfedcba

cv2.BORDER_REFLECT101

gfedcb | abcdefgh | gfedcba

cv2.BORDER_DEFAULT

gfedcb | abcdefgh | gfedcba

cv2.BORDER_TRANSPARENT

uvwxyz | abcdefgh | ijklmno

cv2.BORDER_ISOLATED

관심 영역 (ROI) 밖은 고려하지 않음

 

#opencv 라이브러리 선언언
import cv2

#원본 이미지 불러오기
test_image = cv2.imread("002.jpg", cv2.IMREAD_COLOR)

#불러온 이미지에 흐림 효과 주기
blur_tr01 = cv2.blur(test_image, (10, 10), anchor=(-1, -1), borderType=cv2.BORDER_DEFAULT)

 

 

흐림효과를 준 이미지 출력하기

: 위의 코드를 구현하여 흐림효과를 준 이미지를 출력해보도록 하겠습니다. 원본 값과 비교하기 위해서 원본 이미지도 같이 출력하는 코드를 삽입하도록 하겠습니다. 추가로 출력한 이미지도 첨부하도록 하겠습니다.

 

#원본 이미지 출력
cv2.imshow("Original Image", test_image)

#흐림 효과 준 이미지 출력
cv2.imshow("blur image", blur_tr01)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

이미지 흐리게 하는 코드 구현 결과 사진

 

맺음말

: 이번 포스팅은 opencv 이용하여 불러온 이미지를 흐리게 하는 효과를 주는 방법에  대해서 설명 드렸습니다. 흐림효과를 이용하여 모자이크를 효과를 줄려고 하는 건지에 대해서는 추가적으로 공부해봐야 될 거 같습니다. 그럼 이만 마무리 하도록 하겠습니다.  감사합니다.

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.


[저작권이나권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다검토  수정  삭제 조치 하도록 하겠습니다그리고기재되는 내용은 개인적으로 습득한 내용이므로 오류가 발생할  있을 가능성이 있으므로기재된 내용은 참조용으로만 봐주시길 바랍니다게시물에오류가 있을때도, Comment 달아 주시면검증 결과를 통해수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab