计算一幅图像的信噪比

计算一幅图像的信噪比

大家好,这是我第一次编写blog。我是一生懸命勉強(いっしょうけんめいべんきょう)(中文意思是努力学习!),希望能写出对大家有帮助的文章吧!
本文摘自本人的毕业设计《数字图像滤波算法研究》2019, Chang’an University, Xi’an, China.

适用情况

本文适用于原始图像(即不含噪声的图像)存在的情况下。

计算步骤

  1. 使用待计算SNR图像(记为A)与原始图像(记为B)做相减运算,得到一幅图像(记为C);
  2. 我们将B视为A的信息部分,将C视为A的噪声部分;
  3. 分别计算B、C的方差;
  4. 计算上述两项之比,得到SNR的值。
  5. 对SNR的值对数化,得到以dB为单位的SNR值。

附matlab代码

clc,clear,close all % 清理命令区、清理工作区、关闭显示图形
warning off % 消除警告
feature jit off % 加速代码运行
A=imread(‘C:\Users\Lenovo\Desktop\dip\xx.jpg’);
B=imread(‘C:\Users\Lenovo\Desktop\dip\original.jpg’);
C=imsubtract(A,B);
avg1=mean2©; %求图像均值
[m,n]=size©;
s1=0;
for x=1:m
for y=1:n
s1=s1+(C(x,y)-avg1)^2; %求得所有像素与均值的平方和。
end
end
C1=s1/(mn); %利用方差公式求得
avg2=mean2(B); %求图像均值
[m,n]=size(B);
s2=0;
for x=1:m
for y=1:n
s2=s2+(B(x,y)-avg2)^2; %求得所有像素与均值的平方和。
end
end
B1=s1/(m
n); %利用方差公式求得
D1=B1/C1;
D1=10*log10(D1);

example

计算一幅图像的信噪比_第1张图片
计算一幅图像的信噪比_第2张图片
计算一幅图像的信噪比_第3张图片

计算结果

SNR=10.1861dB

你可能感兴趣的:(数字图像滤波)