MATLAB: How to calculate SNR

snr

Hi,
I need to calculate the SNR of imaging system. I have a image of the system that contains edge target (half image black and half white). How can i calculate the SNR of the system if i don't know the signal and the noise in the image.
please help me, Itai

Best Answer

Assuming the noise mean has zero bias, just take the mean of the image over the white part of the target and the black part of the target, and take the standard deviation, then divide
meanWhiteGL = mean2(whitePartOfImage);
stdWhiteGL = std(double(whitePartOfImage(:)));
SNRWhite = meanWhiteGL / stdWhiteGL;
Same for the black part of the image. It's possible that the two regions could have different SNRs.