Gaussian Filter

Gaussian Filter is used to blur the image. It is
used to reduce the noise and the image details.

The Gaussian kernel's center part ( Here 0.4421 ) has the highest value and intensity of other pixels decrease as the distance from the center part increases.

On convolution of the local region and the Gaussian kernel gives the highest intensity value to the center part of the local region(38.4624) and the remaining pixels have less intensity as the distance from the center increases.

Sum up the result and store it in the current pixel location(Intensity = 94.9269) of the image.

**MATLAB CODE:**

%Gaussian filter using MATLAB built_in function

%Read an Image

Img = imread('coins.png');

A = imnoise(Img,'Gaussian',0.04,0.003);

%Image with
noise

figure,imshow(A);

H = fspecial('Gaussian',[9
9],1.76);

GaussF =
imfilter(A,H);

figure,imshow(GaussF);

**MATLAB CODE for Gaussian blur WITHOUT built_in function:**

%Read an Image

Img = imread('coins.png');

A = imnoise(Img,'Gaussian',0.04,0.003);

%Image with
noise

figure,imshow(A);

I = double(A);

%Design the
Gaussian Kernel

%Standard
Deviation

sigma = 1.76;

%Window size

sz = 4;

[x,y]=meshgrid(-sz:sz,-sz:sz);

M = size(x,1)-1;

N = size(y,1)-1;

Exp_comp =
-(x.^2+y.^2)/(2*sigma*sigma);

Kernel=
exp(Exp_comp)/(2*pi*sigma*sigma);

%Initialize

Output=zeros(size(I));

%Pad the vector
with zeros

I = padarray(I,[sz
sz]);

%Convolution

for i =
1:size(I,1)-M

for j
=1:size(I,2)-N

Temp = I(i:i+M,j:j+M).*Kernel;

Output(i,j)=sum(Temp(:));

end

end

%Image without
Noise after Gaussian blur

Output =
uint8(Output);

figure,imshow(Output);

After Filtering |

## 12 comments:

Geat job!! Thanks.!

How did you find Gaussian kernel kindly explain briefly

hi can you please send me mathematical equation for 3D images

nice code i want to get the kernel how can i do that?all the reference are not downloading it

nice code i want to get the kernel i don't have it and all the reference not useful can you give me an excellent one?

its not working

How is the center pixel = 0 for the exp(-(x^2+y^2)/(2*sigma^2))? When x and y are both zero, the exponent = 0 and exp(0) = 1.

@rock_hound

The explanation is for -x^2+y^2)/(2*sigma*sigma).

Thank you

Very Interesting code !! please i want to get the kernel i don't have it and all the reference not useful can you give me an excellent one?

This is not working.

we need a correct one line matlab command using gaussian filter to remove noise

hi, can you explain me the different between denoising image with gaussian filter in spatial domain and frequency domain? how to differentiate it with your code?

## Enjoyed Reading? Share Your Views