Geometric mean filter

The geometric mean filter is an image filtering process meant to smooth and reduce noise of an image. It is based on the mathematic geometric mean. The output image G(x,y) of a geometric mean is given by


 * $$G(x,y) = \left[\prod_{i,j\varepsilon S}S(i,j)\right]^$$

Where S(x,y) is the original image, and the filter mask is m by n pixels.

Each pixel of the output image at point (x,y) is given by the product of the pixels within the geometric mean mask raised to the power of 1/mn. For example, using a mask size of 3 by 3, pixel (x,y) in the output image will be the product of S(x,y) and all 8 of its surrounding pixels raised to the 1/9th power.

Using the following original image with pixel (x,y) at the center:

Gives the result of: (5*16*22*6*3*18*12*3*15)^(1/9) = 8.77.

Application
The geometric mean filter is most widely used to filter out Gaussian noise. In general it will help smooth the image with less data loss than an arithmetic mean filter.

Code example
The following code shows the application of a geometric mean filter to an image using MATLAB.