How can i determine the percentage of noise given the variance of imnoise ??

9 vues (au cours des 30 derniers jours)
using the noise function J = imnoise(I,'gaussian',m,v) ,how can i estimate the percentage of noise ????
  5 commentaires
Mariem Harmassi
Mariem Harmassi le 20 Oct 2012
i am asking how can i calculate the percentage of noise for a mean and varience given ?? Is there any method able to estimate the percentage of noise for the code J = imnoise(I,'gaussian',m,v) Or the inverse given a percentage of noise ,How can i determine the appropriates variance and mean . The goal is to have the relation between the (m,v) and the percentage of noise.
Image Analyst
Image Analyst le 20 Oct 2012
Did you ever see my answer below?

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 20 Oct 2012
Modifié(e) : Image Analyst le 20 Oct 2012
From the help:
J = imnoise(I,'gaussian',m,v) adds Gaussian white noise of mean m and variance v to the image I. The default is zero mean noise with 0.01 variance.
Let's get the mean of the entire image
meanOfI = mean2(I);
So, on average, I think you're saying you want sqrt(variance) to equal 40% of meanOfI. So now you know what v has to be. Try experimenting around a bit and see what you learn.
Perhaps this demo will be instructive:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
imtool close all; % Close all imtool figures.
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
format longg;
format compact;
fontSize = 14;
% Get the original image.
grayImage = imread('eight.tif');
subplot(2, 2, 1);
imshow(grayImage);
title('Original Gray Scale Image', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% Add Gaussian noise to the pixel values.
noisyImage = imnoise(grayImage,'gaussian', 0, 0.02);
subplot(2, 2, 2);
imshow(noisyImage, []);
title('Noisy Image', 'FontSize', fontSize);
% Get the noise alone.
noiseOnly = single(noisyImage) - single(grayImage);
subplot(2, 2, 3);
imshow(noiseOnly, []);
title('Image of Only the Noise', 'FontSize', fontSize);
% Calculate the signal to noise ratio
snrImage = abs(noiseOnly) ./ double(grayImage);
subplot(2, 2, 4);
imshow(snrImage, []);
title('Image of the Signal-to-Noise Ratio', 'FontSize', fontSize);
% Get the mean SNR
snrMean = mean2(snrImage);
message = sprintf('The mean Signal-to-Noise Ratio = %.2f', snrMean);
uiwait(msgbox(message));

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by