Denoising by averaging noisy images

This is a very simple and interesting technique of denoising. The requirement for using this technique is that:

  • We should have 2 or more images of the same scene or object.
  • The noise of the image capturing device should be fixed. For example, the camera has a noise of a standard deviation of 20.

Working:

Collect the multiple images captured by the same device and of the same object. Just take the average of all the images to get the resultant image. The intensity of every pixel will be replaced by the average of the intensities of the corresponding pixel in all those collected images.This technique will reduce the noise and also there would not be any blurriness in the final image. 

Let say we have n images. Then the noise will be reduced by the degree: 

The more number images used for averaging the more clear image we’ll get after denoising.

Example:

Matlab

% MATLAB code for denoising by averaging
% Read the cameraman image: original image.
I=imread("cameraman.jpg");
 
% Create noise-1 of std=40
n1=40*randn(size(I));
 
% Create first noisy_image by adding the noise to orig image.
I1=double(I)+n1;
 
% Create noise-2 of std=40
n2=40*randn(size(I));
 
% Create 2nd noisy_image by adding the noise to orig image.
I2=double(I)+n2;
 
% Create noise-3 of std=40
n3=40*randn(size(I));
 
% Create 3rd noisy_image by adding the noise to orig image.
I3=double(I)+n3;
 
% Create noise-4 of std=40
n4=40*randn(size(I));
 
% Create 4th noisy_image by adding the noise to orig image.
I4=double(I)+n4;
 
% Create noise-5 of std=40
n5=40*randn(size(I));
 
% Create 5th noisy_image by adding the noise to orig image.
I5=double(I)+n5;
 
% Now lets see denoising.
d1=(I1+I2)/2;
d2=(I1+I2+I3)/3;
d3=(I1+I2+I3+I4)/4;
d4=(I1+I2+I3+I4+I5)/5;
 
%display each denoised image with original noisy image.
imtool(I1,[]);
imtool(d1,[]);
imtool(d2,[]);
imtool(d3,[]);
imtool(d4,[]);

                    

Output: 

Noisy_image and Denoised-1

Noisy_image and Denoised-2

Noisy_image and Denoised-3

Noisy_image and Denoised-4

The quality increases directly if we take more images for averaging.

 



Denoising techniques in digital image processing using MATLAB

Denoising is the process of removing or reducing the noise or artifacts from the image. Denoising makes the image more clear and enables us to see finer details in the image clearly. It does not change the brightness or contrast of the image directly, but due to the removal of artifacts, the final image may look brighter.

In this denoising process, we choose a 2-D box and slide it over the image. The intensity of each and every pixel of the original image is recalculated using the box. 

Similar Reads

Box averaging technique:

Box averaging can be defined as the intensity of the corresponding pixel would be replaced with the average of all intensities of its neighbour pixels spanned by the box. This is a point operator....

Simple and gaussian convolution techniques:

...

Denoising by averaging noisy images:

Convolution does a similar work as the box averaging. In the convolution technique, we define the box and initialise it with the values. For denoising purposes, we initialise the box such that it behaves like averaging box. The convolution box is called the kernel. The kernel slides over the image. The value of the central pixel is replaced by the average of all the neighbour pixels spanned by the kernel....