When using the mean filter in image processing, why should the size of the kernel be odd? It Always takes a odd size as 3x3 or 5x5. Could anyone explain it with reasons?
Asked
Active
Viewed 5,884 times
3
-
http://aishack.in/tutorials/convolutions/ – Mark Setchell Nov 28 '18 at 17:24
1 Answers
11
The kernel doesn't need to be odd. It's perfectly possible to define an even-sized kernel. When the kernel size is even, it is less obvious which of the pixels should be at the origin, but this is not a problem. You have seen mostly odd-sized filter kernels because they are symmetric around the origin, which is a good property.
Here is an example in MATLAB where we filter the image with a 4x4 averaging kernel (mean filter):
img = imread('cameraman.tif');
img = imfilter(img,fspecial('average',4));
imshow(img)

Cris Luengo
- 55,762
- 10
- 62
- 120
-
Thanks for your response.But the only purpose of using odd kernel, only because of it is symmetrical around the origin?Are there any other purposes.Could you explain it. – Mash962 Nov 27 '18 at 11:21
-
1
-
7A non-symmetric kernel yields a non-symmetric filter response. In the example above, this non-symmetry leads to a shift of the blurred image by half a pixel. – Cris Luengo Nov 27 '18 at 14:02
-
@CrisLuengo Thanks. There is a detailed answer [here](https://datascience.stackexchange.com/questions/23183/why-convolutions-always-use-odd-numbers-as-filter-size). – bartolo-otrit Feb 01 '21 at 14:59