SNR for image (No-Reference)

16 views (last 30 days)
Meghana Dinesh
Meghana Dinesh on 10 Mar 2015
Edited: AJ on 21 Jul 2020
I have a .bin file (a 12 bit image). How should I caculate the SNR of this? I am aware that SNR computation needs one clean and one noisy image. But without any reference, this is how I am doing it. Is it right?
I am reading it as a 16 bit image using fread.
fileID = fopen('29.bin');
A = fread(fileID,'uint16');
A1 = reshape(A, [480 640]);
img = A1;
signal = max(img(:));
noise = std(img(:));
SNR = 20*log10(signal/noise);
the SNR I get is: 14.683817721282823
When I open this .bin using Irfan View (Open as > RAW file) these are the parameters I set:
The image is:
This does not appear to have such a less SNR.
Is the way I am computing SNR for a single image (No Reference) correct? I have attached the .bin file here .

Answers (2)

Image Analyst
Image Analyst on 10 Mar 2015
The standard deviation of the image is not noise. You could have a perfectly good noise-free image, and if it has any structure in it, it will have a standard deviation. But you're calling it noise, which it is not, at least not necessarily unless you have a perfectly uniform image.
Also look at Professor Milanfar's page https://users.soe.ucsc.edu/~milanfar/talks/ He has done a lot of work in state of the art noise removal.
  1 Comment
Meghana Dinesh
Meghana Dinesh on 10 Mar 2015
The visionbib link conains sections only till 5.6. I guess you mean I should refer to section 5.3. Correct?
Also, does it make sense to calculate SNR given a single image? I suppose this means when I de-noise the single image ( img1 ) I have, I get say img2. Should I consider this img2 as the reference image and proceed with SNR calculation?

Sign in to comment.


AJ
AJ on 21 Jul 2020
Edited: AJ on 21 Jul 2020
If you can identify the background (noise) vs the foreground/details (signal) in the image, then you can compute SNR by taking the Mean of the signal/mean of the noise
This is how the following example has done for MRI images: https://mrimaster.com/technique%20SNR.html

Community Treasure Hunt

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

Start Hunting!