在MATLAB中计算单个图像中的SNR

时间:2014-09-06 11:46:23

标签: image matlab noise

我有这张图片:

noisy image

我想计算其中的SNR。对于我使用的代码:

img=imread('noicy.JPG');
img=double(img(:));
ima=max(img(:));
imi=min(img(:));
ims=std(img(:));
snr=20*log10((ima-imi)./ims)

计算SNR的代码是否正确?

1 个答案:

答案 0 :(得分:9)

可以找到SNR的定义herehere

可以使用标准和行业定义(10log(x)20log(x))。 check this

现在,signal等于像素值的平均值(mean(img(:))),noise是像素值的标准偏差或误差值({{1} })。

您可以使用比率或std(img(:))以分贝表示结果。