计算两个文件夹中图像的psnr
时间: 2023-08-29 18:13:39 浏览: 126
要计算两个文件夹中图像的PSNR,需要使用以下步骤:
1.使用Python中的OpenCV库加载两个文件夹中的所有图像。
2.遍历每个图像并计算其PSNR。
3.计算每个图像的平均PSNR。
下面是一个示例代码,可以计算两个文件夹中图像的平均PSNR。
```python
import cv2
import os
import numpy as np
def calculate_psnr(img1, img2):
mse = np.mean((img1 - img2) ** 2)
if mse == 0:
return 100
PIXEL_MAX = 255.0
psnr = 20 * np.log10(PIXEL_MAX / np.sqrt(mse))
return psnr
def calculate_average_psnr(folder1, folder2):
psnr_sum = 0
count = 0
for filename1 in os.listdir(folder1):
if filename1.endswith('.jpg') or filename1.endswith('.png'):
img1 = cv2.imread(os.path.join(folder1, filename1))
filename2 = filename1.replace('.jpg', '_2.jpg').replace('.png', '_2.png')
img2 = cv2.imread(os.path.join(folder2, filename2))
psnr = calculate_psnr(img1, img2)
psnr_sum += psnr
count += 1
return psnr_sum / count
folder1 = 'folder1'
folder2 = 'folder2'
average_psnr = calculate_average_psnr(folder1, folder2)
print('Average PSNR:', average_psnr)
```
在这个例子中,我们遍历文件夹1中的每个图像,并假设文件夹2中包含与文件夹1中相同数量的图像,但是文件名中包含'2'。我们加载每个图像并计算其PSNR。最后,我们计算所有图像的平均PSNR并输出结果。
阅读全文