import os
import numpy as np
from PIL import Image
import pyiqa
import torch
# 输入包含图像的文件夹路径pyiqa
input_folder = '/media/sdnu/f9cc3556-f530-42b2-95df-64c823288321/home/sdnu/SXY/Data/unpair/LLFormer_DICM/' # 替换为包含图像的文件夹路径
# 初始化一个列表来存储所有图像的 NIQE 分数
niqe_scores = []
device = 'cuda:0'
# 使用默认设置创建度量
iqa_metric = pyiqa.create_metric('niqe').to(device)
# 遍历输入文件夹中的所有图像
for filename in os.listdir(input_folder):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 读取图像
image = Image.open(os.path.join(input_folder, filename))
# 将图像转换为 numpy 数组
image_np = np.array(image)
image_tensor = torch.from_numpy(image_np).permute(2,0,1).unsqueeze(0).float().div(255).to(device)
# 计算图像的 NIQE 分数并添加到列表中
niqe_score = iqa_metric(image_tensor)
niqe_scores.append(niqe_score.item())
# 计算所有图像的平均 NIQE 分数
average_niqe = np.mean(niqe_scores)
print(f'Average NIQE score of images in the folder: {average_niqe}')