Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I measure image noise

Tags:

I've found a few ways of reducing noise from image, but my task is to measure it.

So I am interested in algorithm that will give me some number, noise rating. That with that number I will be able to say that one image has less noise than others.

like image 750
Vitalii Boiarskyi Avatar asked Jan 22 '12 10:01

Vitalii Boiarskyi


People also ask

What is noise level in image?

Image noise is random variation of brightness or color information in images, and is usually an aspect of electronic noise. It can be produced by the image sensor and circuitry of a scanner or digital camera. Image noise can also originate in film grain and in the unavoidable shot noise of an ideal photon detector.

What are the 3 common types of image noise?

The main types of image noise are random noise, fixed pattern noise, and banding noise.

How does Matlab measure image noise?

Create an esfrChart object, then display the chart with ROI annotations. The 20 gray patch ROIs are labeled with red numbers. Measure the noise in all gray patch ROIs. Display a graph of the mean signal and the signal to noise ratio (SNR) of the three color channels over the 20 gray patch ROIs.


2 Answers

From a view of image processing, you can consult the classic paper "Image quality assessment: From error visibility to structural similarity" published in IEEE Transaction on Image Processing, which has already been cited 3000+ times according to Google Scholar. The basic idea is human's visual perception system is highly sensitive to structural similarity. However, noise (or distortion) often breaks such similarity. Therefore the authors tried to propose an objective measurement for image quality based on this motivation. You can find an implementation in MATLAB here.

like image 183
grapeot Avatar answered Sep 24 '22 12:09

grapeot


To solve my problem I used next approach:

My noise rating is just number of pixels that were recognized as noise. To differentiate normal pixels from noise, I just calculated the medium value of its neighbor pixels and if its value was bigger than some critical value, we say that this one is noise.

if (ABS(1 - (currentPixel.R+currentPixel.G+currentPixel.B)/(neigborsMediumValues.R + neigboursMediumValues.G + neigboursMediumValues.B))) > criticalValue)
then
{
    currentPixelIsNoise = TRUE;
}    
like image 34
Vitalii Boiarskyi Avatar answered Sep 21 '22 12:09

Vitalii Boiarskyi