Effacer les filtres
Effacer les filtres

Signal to noise ratio color image (code) for dB

1 vue (au cours des 30 derniers jours)
Dadhichi
Dadhichi le 3 Fév 2013
I am trying to compute signal to noise ratio (dB) in color images as follows:
noisydata = imnoise(original,'gaussian',0.0,0.1); % mean = 0.0, variance = 0.1
[var_orgR, var_noiseR] = snr(noisydata(:,:,1),original(:,:,1));
[var_orgR, var_noiseR] = snr(noisydata(:,:,2),original(:,:,2));
[var_orgR, var_noiseR] = snr(noisydata(:,:,3),original(:,:,3));
SNR= 10*log10((var_orgR + var_orgG + var_orgB)/(var_noiseR + var_noiseG + var_noiseB));
function [var_original, var_noise] = snr(noisydata, original)
mean_original = mean(original(:));
tmp = original - mean_original;
var_original = sum(tmp(:).^2);
noise = noisydata - original;
mean_noise = mean(noise(:));
tmp = noise - mean_noise;
var_noise = sum(tmp(:).^2);
end
The problem is I get value of SNR = 0.0330, I would like to get SNR in dB like 1 dB, 5 dB, etc.
Could any one please guide/suggest how to obtain SNR in dB?
Thank you. Dbs

Réponses (2)

Image Analyst
Image Analyst le 3 Fév 2013
Where did you get these formulas? I'm not sure I agree with them. In fact I don't, unless you can show me some reference that say otherwise.
  5 commentaires
Image Analyst
Image Analyst le 3 Fév 2013
I don't think that would fix it. I would need proof. Anyway, I don't know what a "fix" is. Like I said, you asked how to get the number in decibels and I told you that it's already in decibels.
Dadhichi
Dadhichi le 4 Fév 2013
What proof do you need? If you have access to papers you'll agree. The code is correct, uint8 was programming error, it is not required. Anyways, 'noisydata' and 'original' should have values in same range i.e. between 0 to 1 (was another programming error) :D .

Connectez-vous pour commenter.


Toqeer Mahmood
Toqeer Mahmood le 9 Oct 2015
Dear Dadhichi
I am also confused in the same problem, I also want to find SNR with the whole number as 5dB, 10db, 15dB etc. Please send me the working code to find it, if possible for you (my email is toqeer.mahmood@yahoo.com).
Thanks in advance, waiting for your kind reply.

Community Treasure Hunt

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

Start Hunting!

Translated by