junxnone / aiwiki

AI Wiki
https://junxnone.github.io/aiwiki
17 stars 2 forks source link

OpenCV IP Filter bilateralFilter #317

Open junxnone opened 1 year ago

junxnone commented 1 year ago

Bilateral Filter 双边滤波

image

原理

Domain Filter (Geometric)

$\huge h(x)=kd^{-1}(x)\int{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(\xi)c(\xi,x)d\xi$

$\huge c(\xi,x)=e^{-\frac{1}{2}(\frac{d(\xi,x)}{\sigma_d})^2}$

Range Filter (Photometric)

$\huge h(x)=kr^{-1}(x)\int{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(\xi)s(f(\xi),f(x))d\xi$

$\huge s(\xi,x)=e^{-\frac{1}{2}(\frac{\delta(f(\xi),f(x))}{\sigma_r})^2}$

$\huge \delta(\phi,\textbf{f}) = \delta(\phi - \textbf{f}) = \left|\phi - \textbf{f}\right|$

不同 $σ_d$ 和 $σ_r$ 效果

image

Tips

OpenCV API

void cv::bilateralFilter(InputArray     src,
                        OutputArray     dst,
                        int     d,
                        double  sigmaColor,
                        double  sigmaSpace,
                        int     borderType = BORDER_DEFAULT 
                        )   

Reference