PSNR算法来评估图像质量的代码
时间: 2023-11-26 21:11:23 浏览: 98
以下是使用Python实现PSNR算法来评估图像质量的代码:
```python
import cv2
import numpy as np
def psnr(img1, img2):
mse = np.mean((img1 - img2) ** 2)
if mse == 0:
return 100
PIXEL_MAX = 255.0
return 20 * np.log10(PIXEL_MAX / np.sqrt(mse))
# 读取两张图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 转换为灰度图像
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 计算PSNR值
psnr_value = psnr(gray1, gray2)
print("PSNR value is {}".format(psnr_value))
```
其中,`psnr()`函数用于计算PSNR值,`img1`和`img2`是两张图片,`gray1`和`gray2`是将两张图片转换为灰度图像后得到的结果。最后输出计算得到的PSNR值。
相关问题
写一个用pycharm实现PSNR算法来评估图像质量
好的,以下是一个使用PyCharm实现PSNR算法来评估图像质量的例子:
```python
import cv2
import math
def PSNR(original, compressed):
mse = np.mean((original - compressed) ** 2)
if mse == 0:
return 100
PIXEL_MAX = 255.0
psnr = 20 * math.log10(PIXEL_MAX / math.sqrt(mse))
return psnr
# 读取图像
img1 = cv2.imread('original.png')
img2 = cv2.imread('compressed.png')
# 转换为灰度图像
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
# 计算PSNR
psnr = PSNR(gray1, gray2)
print("PSNR:", psnr)
```
在这个例子中,我们首先定义了一个函数PSNR来计算PSNR值。然后,我们使用cv2.imread()函数来读取原始图像和压缩后的图像,并使用cv2.cvtColor()函数将它们转换为灰度图像。最后,我们调用PSNR函数来计算PSNR值,并将结果打印出来。请注意,您需要确保在运行代码之前将原始图像和压缩后的图像放在正确的文件路径下。
matlab编写图像质量评价算法psnr和ssim代码,输出相似值
PSNR(峰值信噪比)和SSIM(结构相似性指数)是用于评价图像质量的常用指标。下面是用MATLAB编写的图像质量评价算法的示例代码:
```matlab
% 读取两张图像
img1 = imread('image1.jpg');
img2 = imread('image2.jpg');
% 计算PSNR
mse = mean((img1(:) - img2(:)).^2);
psnr = 10 * log10((255^2) / mse);
% 计算SSIM
ssimval = ssim(img1, img2);
% 输出相似值
disp(['PSNR值为:', num2str(psnr)]);
disp(['SSIM值为:', num2str(ssimval)]);
```
这段代码首先读取了两张图像,并计算了它们之间的PSNR值和SSIM值,最后将结果输出到命令窗口上。通过这段代码,我们可以方便地对图像的质量进行评估,并得到相应的质量指标值。PSNR值越高,代表图像质量越好;SSIM值接近1,代表两张图像相似度很高。因此,通过这段代码输出的相似值可以帮助我们快速了解图像的质量情况。
阅读全文