PSNR RMSE 和SSIM区别
时间: 2024-03-26 11:31:33 浏览: 354
PSNR(Peak Signal to Noise Ratio)是一种全参考的图像质量评价指标,用于衡量原始图像与压缩或失真图像之间的相似程度。PSNR的计算公式为:
PSNR = 10 * log10((L^2) / MSE)
其中,L是像素值的最大可能取值(例如,对于8位图像,L=255),MSE是均方误差(Mean Squared Error),表示原始图像与失真图像之间的差异。
RMSE(Root Mean Squared Error)也是一种衡量图像质量的指标,它是MSE的平方根。RMSE可以用来衡量原始图像与失真图像之间的平均差异。
SSIM(Structural Similarity Index)是一种结构相似性指数,用于衡量原始图像与失真图像之间的结构相似性。SSIM的计算公式包括亮度相似性、对比度相似性和结构相似性三个部分。
PSNR、RMSE和SSIM都是用于衡量图像质量的指标,但它们从不同的角度对图像进行评价。PSNR和RMSE主要关注图像的像素差异,而SSIM则更加注重图像的结构相似性。
相关问题
psnr和ssim MAE RMSE计算公式
### PSNR、SSIM、MAE、RMSE 的计算公式
#### 峰值信噪比 (PSNR)
峰值信噪比是一种常用的图像质量评估指标,用于衡量重建图像的质量。其定义为:
\[ \text{PSNR} = 10 \cdot \log_{10}\left(\frac{\text{MAX}_I^2}{\text{MSE}}\right) \]
其中,
- \( \text{MAX}_I \) 是像素的最大可能强度值(对于8位灰度图像是255)
- \( \text{MSE} \) 表示均方误差。
该公式的推导基于信号处理理论中的信噪比概念[^4]。
```python
import numpy as np
def psnr(original_image, noisy_image):
mse_value = np.mean((original_image - noisy_image)**2)
max_pixel_value = 255.0
psnr_result = 20 * np.log10(max_pixel_value / np.sqrt(mse_value))
return psnr_result
```
#### 结构相似性指数 (SSIM)
结构相似性指数测量两个图像之间的感知差异,考虑亮度、对比度和结构三方面的变化。基本形式如下所示:
\[ \text{SSIM}(x,y)=\frac{(2\mu_x\mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu_x^2+\mu_y^2+C_1)(\sigma_x^2+\sigma_y^2+C_2)} \]
这里 \( C_1=(K_1L)^2,C_2=(K_2L)^2 \),\( L \) 是动态范围,\( K_1,K_2 << 1 \)[^2]。
```python
from skimage.metrics import structural_similarity as ssim
ssim_index, diff = ssim(imageA, imageB, full=True)
```
#### 平均绝对误差 (MAE)
平均绝对误差是指预测值与实际观测值之间差额的绝对值的平均数:
\[ \text{MAE}=\frac{1}{n}\sum^n_{i=1}|y_i-\hat y_i| \]
此表达式适用于任何类型的数值数据集,在图像领域则指代像素级偏差[^3]。
```python
def mae(img1, img2):
absolute_error_sum = np.sum(np.abs(img1.astype('float') - img2.astype('float')))
mean_absolute_error = absolute_error_sum / float(img1.shape[0] * img1.shape[1])
return mean_absolute_error
```
#### 均方根误差 (RMSE)
均方根误差是各数据偏离真实值之平方和的平均数再开平方的结果,即标准差的一种变形:
\[ \text{RMSE}= \sqrt{\frac{1}{N}\sum^{N}_{i=1}(Y_i-Y'_i)^2 } \]
它反映了估计量与被估计量间的离散程度。
```python
def rmse(predictions, targets):
differences = predictions - targets
differences_squared = differences ** 2
mean_of_differences_squared = differences_squared.mean()
rmse_val = np.sqrt(mean_of_differences_squared)
return rmse_val
```
除了PSNR和SSIM,还有什么指标
除了PSNR和SSIM之外,还有一些用于评估图像质量的指标,例如:
1. 峰值信噪比(Peak Signal-to-Noise Ratio,PSNR):用于评估重建图像与原始图像之间的差异,数值越高表示图像质量越好。
2. 结构相似性指标(Structural Similarity Index,SSIM):用于评估重建图像与原始图像之间的结构相似性,数值越接近1表示图像质量越好。
3. 信息熵(Entropy):用于评估图像的复杂度和纹理丰富度,数值越高表示图像越复杂。
4. 均方根误差(Root Mean Square Error,RMSE):用于评估重建图像与原始图像之间的差异,数值越小表示图像质量越好。
5. 峰值信号噪声比(Peak Signal-to-Noise and Noise Ratio,PSNNR):用于评估重建图像与原始图像之间的差异和噪声级别,数值越高表示图像质量越好。
6. 视觉感知质量指标(Visual Perception Quality Metrics,VPQM):基于人类视觉系统的感知特性,用于评估图像的视觉感知质量,包括亮度、对比度、锐度、色彩等方面。
7. 人工主观评价(Subjective Assessment):通过人类评价者对图像的直观感受和评价,来评估图像的质量和美感。
需要注意的是,每种指标都有其适用的场景和局限性,需要根据具体情况选择合适的指标来评估图像质量。同时,不同的指标可能会得出不同的评价结果,需要综合考虑多个指标来评估图像质量。
阅读全文