计算生成图像与数据集之间所有图像的平均SSIM。
- import os
- import cv2
- import numpy as np
- from PIL import Image
- from skimage.metrics import structural_similarity
-
- import warnings
- warnings.filterwarnings('ignore')
-
- SSIM_list = []
- gan_img_path = r"D:\pythonProject\gan"
- data_img_path = r"D:\pythonProject\datasets"
- gan_img_names = os.listdir(gan_img_path) # 获取所有生成图像的文件名
- data_img_names = os.listdir(data_img_path) # 获取所有数据集图像的文件名
-
-
- for i in range(len(gan_img_names)):
- gan_img = cv2.imread(os.path.join(gan_img_path, gan_img_names[i]))
- for j in range(len(data_img_names)):
- data_img = cv2.imread(os.path.join(data_img_path, data_img_names[j]))
- if gan_img.shape[0] != data_img.shape[0] or gan_img.shape[1] != data_img.shape[1]:
- pil_img = Image.fromarray(data_img)
- pil_img = pil_img.resize((gan_img.shape[1], gan_img.shape[0]))
- data_img = np.array(pil_img)
- SSIM = structural_similarity(gan_img, data_img, multichannel=True)
- SSIM_list.append(SSIM)
-
- print("average SSIM", sum(SSIM_list)/len(SSIM_list))