잡음 제거 필터의 하나
기준 픽셀, 이웃 픽셀과의 거리, 픽셀 값의 차이를 함께 고려하여 블러링 정도 조정
가우시안 필터의 경우 에지 부분까지 blurring 하여 이미지의 형태조차 알아보기 힘든 경우가 많지만
양방향 필터의 경우 에지가 아닌 부분에서만 blurring 하여 물체의 윤곽이 어느 정도 보존이 됩니다.
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace [, dst [, borderType]]) [] : 생략 가능
import cv2
img = cv2.imread("imgs/Lenna.png")
img = cv2.resize(img, dsize=(0, 0), fx=2, fy=2)
dst = cv2.bilateralFilter(img, -1, 10, 10)
dst2 = cv2.bilateralFilter(img, -1, 50, 10)
cv2.imshow("Lenna", img)
cv2.imshow("dst", dst)
cv2.imshow("dst2", dst2)
cv2.waitKey()
cv2.destroyAllWindows()
src : 입력 영상
d : 필터링에 사용될 이웃 픽셀의 거리(지름)
음수(-1) 입력 시 sigmaSpace 값에 의해 자동 결정(추천)
sigmaColor : 색 공간에서 필터의 표준 편차(너무 크면 에지 부분을 구분하지 못합니다)
sigmaSpace : 좌표 공간에서 필터의 표준 편차(가우시안 필터에서 시그마와 비슷합니다)
값이 클수록 연산 시간이 길어집니다.
※ sigmaSpace를 엄청 크게 줘도 sigmaColor 값이 작다면 큰 변화가 없네요. 서로 값을 바꿔보면서 해보세요
dst : 출력 영상
borderType : 가장자리 픽셀 처리 방식
'OpenCV-Python' 카테고리의 다른 글
OpenCV Python 연산 시간 측정 (0) | 2021.08.25 |
---|---|
OpenCV Python 선, 도형, 문자열 출력 (0) | 2021.08.24 |
OpenCV Python 이미지 영상 확대 축소 (0) | 2021.08.23 |
OpenCV Python 필터링 - 날카로운 영상 만들기: 언샤프(unsharp) 필터 (0) | 2021.08.23 |
OpenCV Python 필터링 - 부드러운 영상 만들기 : blur, GaussianBlur (0) | 2021.08.22 |