4
$\begingroup$

As I understand it, in image processing, when it is desired to apply a filter of some sort to an 2D image, a kernel is applied to all the pixels of the 2D image in a process called convolution. Median, Gaussian, Bilateral, all are examples of kernel. These kernels are applied in a similar fashion to that shown in this example http://www.songho.ca/dsp/convolution/convolution2d_example.html (which I found here, searching Signal Processing at StackExchange).

Is there a good list of all/many/most kernels, there uses, and an example before/after image?

Also, is it correct to say that all kernels are just matrices which get convolved against a source?

$\endgroup$
6
$\begingroup$

Be careful, a median filter cannot be expressed as a convolution, and thus is not considered a kernel in this respect. This is because the median filter is based on order statistics of an image patch, and the resulting pixel at the output of a median filter is not a linear combination of other pixels within a patch.

Otherwise, you are right, kernels are generally thought of as just other 'small images', that one would convolve with the image to be analyzed. Those kernels can be chosen for a variety of reasons. Gaussian kernels are used for smoothing, laplacians are used for edge detections, etc.

There are as many kernels as you can imagine. However usually we start with a particular application in mind, "I need to blur the image", or "I need to detect edges in the x-direction", and then find kernels that magnify those features we are after.

$\endgroup$
  • 1
    $\begingroup$ Bilateral filter isn't linear either, IIRC $\endgroup$ – Niki Estner Dec 16 '13 at 7:21
  • $\begingroup$ @nikie Yup, that is correct. $\endgroup$ – Tarin Ziyaee Dec 16 '13 at 7:49

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.