opencv

OpenCV Bilateral Filtering

hoon1016 2021. 4. 30. 16:06

Bilateral(양방향) Filtering이란 무엇인가?

  • 지금까지 입력 이미지를부드럽게 하는 것이 주요 목표 인 몇 가지 필터를 설명했습니다.그러나 때때로 필터는 노이즈를 제거할 뿐만 아니라 가장자리를 부드럽게 합니다 . 이를 방지하기 위해 (적어도 어느 정도까지는) 양방향 필터를 사용할 수 있습니다.
  • 가우시안 필터와 유사한 방식으로 양방향 필터는 각각에 가중치가 할당된 인접 픽셀도 고려합니다. 이러한 가중치에는 두 가지 구성 요소가 있으며, 그중 첫 번째는 가우스 필터에서 사용하는 동일한 가중치입니다. 두 번째 구성 요소는 인접한 픽셀과 평가된 픽셀 간의 강도 차이를 고려합니다.

참고로 보시면 좋겠습니다!

Bilateral Filtering 설명입니다!

OpenCV 함수 bilateralFilter () 제공 5 개의 인수를 사용합니다.

  • src: 소스 이미지
  • dst: 대상 이미지
  • d: 각 픽셀 이웃 직경.
  • σColor: 색 공간의 표준 편차
  • σSpace: 좌표 공간의 표준 편차(픽셀 단위)

이제 제가 실습한 코드와 결과를 보여드리겠습니다!

왼쪽이 기본이미지입니다 오른쪽이 BilateralFilter입니다.
저의 코드입니다

import cv2

import numpy as np

 

img = cv2.imread('data/images/gaussian-noise.png',1)

 

result = cv2.bilateralFilter(img,15,80,80)

 

combined = np.hstack([img, result])

 

cv2.imshow("combined", combined)

 

cv2.waitKey()

cv2.destroyAllWindows()

 

참고한 사이트 입니다! docs.opencv.org/3.4/dc/dd3/tutorial_gausian_median_blur_bilateral_filter.html