양방향 필터는 엣지를 보존하고 이미지의 noise를 제거하는 필터이다. 양방향 필터의 수식은 아래와 같다.
$$ BF[I]p = \frac{1}{W{p}} \sum_{q \in S} G_{\sigma_s}(||\textbf{p} - \textbf{q}||) G_{\sigma_r}(|\textbf{I}_p - \textbf{I}_q|)\textbf{I}_q $$
기본 Gaussian filter의 경우 픽셀간의 norm 즉 거리 따른 weight만 있다면 Bilateral filter는 픽셀값에 따른 weight를 곱함으로서 edge를 보존하게 된다. 즉 거리가 멀거나 픽셀값의 차이가 클 경우 가중치가 낮아진다.
Bilateral Filter 적용 전
Bilateral Filter 적용 후
Python | Bilateral Filtering - GeeksforGeeks
이미지에서 엣지를 검출은 기본적으로 미분을 통하여 기울기가 큰 값을 구해 검출한다. (기울기가 크다는 것은 급격하게 변한다는 뜻 이다.)
$$ \text{Centered Difference : } \frac{\partial I}{\partial x} = \frac{I(x + h) - I(x - h)}{2h} $$