图像的 SNR 和 PSNR 的计算

1、图像客观质量评价

方法是先计算出被评价图像的某些统计特性和物理参量,最常用的是图像相似度的测量。图像相似度的测量通常是用处理后的图像与原图像之间的统计误差来衡量处理图像的质量,若误差越小,则从统计意义上来说,被评价图像与原图像的差异越小,图像的相似度就越高,获得的图像质量评价也就越高。

此种评价方法大多适用于黑白图像及灰度图像的质量评价。常用的图像相似度测量参数有平均绝对误差(ME) 、均方误差(MSE)、归一化均方误差(MSE) 、信噪比(SNR)和峰值信噪比(PSMR )等。

2、信噪比

图像的信噪比应该等于信号与噪声的功率谱之比,但通常功率谱难以计算, 有一种方法可以近似估计图像信噪比,即信号与噪声的方差之比。首先计算图像所有象素的局部方差,将局部方差的最大值认为是信号方差,最小值是噪声方差,求出它们的比值,再转成dB数,最后用经验公式修正。

图像的信噪比的计算公式如下:

S N R = 10 l g ∑ i = 0 M − 1 ∑ j = 0 N − 1 g ( i , j ) 2 ∑ i = 0 M − 1 ∑ j = 0 N − 1 [ g ( i , j ) − f ( i , j ) ] 2 SNR=10lg\frac{{\sum_{i=0}^{M-1}}{\sum_{j=0}^{N-1}g(i,j)^2}}{ {\sum_{i=0}^{M-1}{\sum_{j=0}^{N-1}{[g(i,j)-f(i,j)]^2}}} } SNR=10lgi=0M1j=0N1[g(i,j)f(i,j)]2i=0M1j=0N1g(i,j)2
M M M N N N分别是图像长度和宽度上的像素个数, g ( i , j ) g(i,j) g(i,j) f ( i , j ) f(i,j) f(i,j)分别是原始原始图像和去噪后的图像在 ( i , j ) (i,j) (i,j)处的灰度值。

信噪比是用于比较被评价图像与原图像质量的参数,信噪比的数值越大,图像质量越好。

double kcvPSNR(IplImage* im1,IplImage* im2)  
{  
    IplImage* dst = cvCreateImage( cvGetSize(im1), 8, 1);  
    cvAbsDiff(im1,im2,dst);  
    CvScalar stddev;  
    cvAvgSdv(dst,NULL,&stddev);  
    double psnr=20*log10(255/stddev.val[0]);  
    cvReleaseImage(&dst);  
    return psnr;  
}  

3、峰值信噪比

峰值信噪比经常用作图像压缩等领域中信号重建质量的测量方法,它常简单地通过均方差(MSE)进行定义。PSNR (Peak Signal to Noise Ratio):也是讯杂比,只是讯号部分的值通通改用该讯号度量的最大值。以讯号度量范围为0到255当作例子来计算PSNR时,讯号部分均当成是其能够度量的最大值,也就是255,而不是原来的讯号。

两个m×n单色图像I和K,如果一个为另外一个的噪声近似,那么它们的的均方差定义为:
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 ∣ ∣ I ( i , j ) − K ( i , j ) ∣ ∣ 2 MSE=\frac{1}{mn}\sum_{i=0}^{m-1}{\sum_{j=0}^{n-1}} ||I(i,j)-K(i,j)||^2 MSE=mn1i=0m1j=0n1I(i,j)K(i,j)2

峰值信噪比定义为:

4、信噪比和峰值信噪比的关系

图像的 SNR 和 PSNR 的计算
計算影像處理後的 SNR 與 PSNR
图像信噪比SNR求解
图像信噪比、计算公式、实例分析
计算一幅图像的信噪比

### SNR PSNR图像处理中的区别 在图像处理领域,信噪比(SNR)峰值信噪比(PSNR)都是用于评估图像质量的重要指标。 SNR 表示信号功率与噪声功率的比例关系,在数值上等于信号均方差除以噪声均方差[^1]。具体计算公式如下: 对于原始图像 \( I \) 含有噪声的图像 \( K \),其 SNR 可表示为: \[ \text{SNR} = 10\log_{10}\left(\frac{\sigma_I^2}{\sigma_K^2-\sigma_I^2}\right)\] 而 PSNR 则考虑了最大可能像素值的影响,通常适用于灰度范围已知的情况。给定两幅大小相同的图像 \( f(x,y) \) (原图) \( g(x,y) \)(含噪或重建后的图片),则 PSNR 定义为: \[ \text{MSE}(f,g)=\frac{1}{mn}\sum^{m}_{i=1}\sum^n_{j=1}[f(i,j)-g(i,j)]^2\] \[ \text{PSNR}=10\cdot\log_{10}\left(\frac{(L-1)^2}{\text{MSE}}\right)\] 其中 L 是单个像素的最大量化级别加一(例如对于8位灰阶图像而言就是256),\( m,n \) 分别代表图像的高度宽度。 尽管两者都用来衡量图像的质量损失程度,但是由于 PSNR 更容易实现自动化测量,并且能够提供更直观的结果解释,因此在实际应用中更为常用。然而值得注意的是,这两种方法都不能完全反映人类视觉系统的感知特性;当涉及到主观感受时,它们可能会给出误导性的结论。 ```matlab function psnr_value = calculate_psnr(original_image, noisy_image) % 计算两个图像之间的 PSNR 值 mse_value = mean((original_image(:) - double(noisy_image(:))).^2); max_pixel_value = 255; % 对于8-bit 图像来说这是最大的亮度等级 if(mse_value ~= 0) psnr_value = 10 * log10((max_pixel_value ^ 2) / mse_value); else psnr_value = Inf; end end ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值