7
$\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 Song Ho Ahn - Example of 2D Convolution (which I found at StackExchange Signal Processing).

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$
1
  • $\begingroup$ Typo: “there uses” -> “their uses” (too small for me to fix.) $\endgroup$ Apr 14, 2023 at 18:55

1 Answer 1

8
$\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$
3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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