I am looking for a kernel acting as a low pass filter that satisfies these conditions:

$$K(-\mathbf{u})=K(\mathbf{u}) \tag{1}$$ $$K(\mathbf{u}) \ge K(\mathbf{v}), \;\; \text{if} \;\; |\mathbf{u}|<|\mathbf{v}|, \;\; \text{and} \;\; \lim_{|\mathbf{u}|\rightarrow\infty} K(\mathbf{u})=0 \tag{2}$$ $$\int K(\mathbf{x})d\mathbf{x} = 1 \tag{3}$$

In the reference paper, the author suggested a Gaussian kernel that is:

$$K_\sigma(\mathbf{u})=\frac{1}{\left(\sqrt{2\pi}\sigma\right)^n}e^{-|\mathbf{u}|^2/2\sigma^2} $$

with a scale parameter $\sigma > 0$.

The Gaussian kernel is very good at approximating the required properties. But the kernel reduces edge information when the kernel size is large.

Could you suggest to me any kernel that can satisfy the three conditions above, and is more robust than Gaussian in noise reduction, while maintaining edge information? I found a modified kernel, but it was very difficult to implement. Thank you so much.

  • $\begingroup$ Could you explain those 3 conditions in English? 1. Kernel must be symmetrical? 2. Kernel must taper off to 0 at infinity? But what is v? 3. Area under the kernel is 1? (trivial normalization?) What do you mean by "reduce edege information"? $\endgroup$
    – endolith
    Aug 1 '14 at 21:42
  • 3
    $\begingroup$ You requirements are contradictory for a linear time invariant filter. Edge information (slope, shape, etc.) may partially be in the high frequency content of the signal which a low pass filter will attenuate. $\endgroup$
    – hotpaw2
    Aug 2 '14 at 2:59
  • $\begingroup$ @endolith: 1. You are right, it must symetrical, 2. Right, v is any point in the kernel K. This is a increasing function. 3. Only normalization. Reduce edge that mean low pass filter will loss some edge information (blur) $\endgroup$
    – John
    Aug 2 '14 at 5:22
  • 1
    $\begingroup$ Did you take a look at the bilateral filter? It is a multiplication of two Gaussian kernels such that it low-pass filters the image but tries to maintain the integrity of the edges as much as possible: en.wikipedia.org/wiki/Bilateral_filter $\endgroup$
    – rayryeng
    Aug 2 '14 at 20:02
  • 2
    $\begingroup$ @user8264: Any time someone is mentioning a paper, book chapter or any other source it is good to include the reference. If only you did that in the beginning, the answer probably would be already here... $\endgroup$
    – jojek
    Aug 4 '14 at 19:34

There are many "Edge Preserving" filters in the image processing world.
2 very popular would be:

  1. The Bilateral Filter.
  2. Anisotropic Diffusion Filter.

Google search on each of the terms will give you plenty of data and code samples of each.

For any specific question about them, let me know, I'd be happy to assist.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.