How can I estimate the variance of noise of an given image?

 Akzeptierte Antwort

Image Analyst
Image Analyst am 4 Okt. 2013

0 Stimmen

Try running various filters on your image until you think you've achieved a noise free image. Then subtract it from the noisy image and pass the result in to var(). Make sure you cast your images to double because a subtraction of uint8 pixel values will clip at 0 and not give you the negative values that you need.

7 Kommentare

Thanks Image Analyst, actually I want to calculate the threshold value to perform soft threshold denoising on image using the calculated threshold. If I denoise the image using filters to calculate the threshold and then again try to denoise the image using soft thresholding, will it be meaning full, Sir?
Please provide me some suggestions
if I calculate the variance of high frequency components of the image, it will be close to the variance of noise.
Is it a proper way to find the variance of the noise.
You can compute a low pass filtered version of the image
lowPass = conv2(double(grayImage), ones(25), 'same');
Then subtract it to get the noise only (assuming this is noise):
noiseOnlyImage = double(grayImage) - lowPass;
noiseVar = var(noiseOnlyImage);
See how that goes.
Thank you Image Analyst just for conv we have to use conv2 because we are working on images about the variance I obtained a vector I want to have just one value as variance, how?
It should have been
noiseVar = var(noiseOnlyImage(:));
hello, image analyst. Do you know how to find the variance of multiple images?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by