小淼博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.SSIM和PSNR的效果展示

这里我们验证使用两种方法计算的结果是否和主观感受上一致。使用的4张图片如下所示:

import cv2
from skimage import measure
# from skimage.metrics import structural_similarity as compare_ssim # New Version for skimage
# from skimage.metrics import peak_signal_noise_ratio # New Version for skimage


ori_image = "images/ori_001.jpg"
ass_image_1 = "images/ass_001.jpg"
ass_image_2 = "images/ass_002.jpg"
ass_image_3 = "images/ass_003.jpg"

ori_img = cv2.imread(ori_image)
ass_img_1 = cv2.imread(ass_image_1)
ass_img_2 = cv2.imread(ass_image_2)
ass_img_3 = cv2.imread(ass_image_3)

ssim_ori = measure.compare_ssim(ori_img, ori_img, multichannel=True) # ssim_ori = compare_ssim(ori_img, ori_img, channel_axis = 2) # multichannel=True) # New Version for skimage
ssim_img_1 = measure.compare_ssim(ori_img, ass_img_1, multichannel=True)
ssim_img_2 = measure.compare_ssim(ori_img, ass_img_2, multichannel=True)
ssim_img_3 = measure.compare_ssim(ori_img, ass_img_3, multichannel=True)

print(f"[SSIM]: ori vs ori is {ssim_ori}")
print(f"[SSIM]: ori vs image1 is {ssim_img_1}")
print(f"[SSIM]: ori vs image2 is {ssim_img_2}")
print(f"[SSIM]: ori vs image3 is {ssim_img_3}")

psnr_ori = measure.compare_psnr(ori_img, ori_img) # psnr_ori = peak_signal_noise_ratio(ori_img, ori_img) # compare_psnr(ori_img, ori_img) # New Version for skimage
psnr_img_1 = measure.compare_psnr(ori_img, ass_img_1)
psnr_img_2 = measure.compare_psnr(ori_img, ass_img_2)
psnr_img_3 = measure.compare_psnr(ori_img, ass_img_3)

print(f"[PSNR]: ori vs ori is {psnr_ori}")
print(f"[PSNR]: ori vs image1 is {psnr_img_1}")
print(f"[PSNR]: ori vs image2 is {psnr_img_2}")
print(f"[PSNR]: ori vs image3 is {psnr_img_3}")

🌻 注意: 针对静态的相似度较高的图像有较好的判别能力,如果图像内容发生了较大的变化则不完全适用。

锐度计算图像锐度评分算法,方差,点锐度法,差分法,梯度法

import cv2
import numpy as np
ori_image = "./1.png"
ass_image_1 = "./2.png"
ass_image_2 = "./3.png"
ass_image_3 = "./4.png"

ori_img = cv2.imread(ori_image)
ass_img_1 = cv2.imread(ass_image_1)
ass_img_2 = cv2.imread(ass_image_2)
ass_img_3 = cv2.imread(ass_image_3)

ori_img = ori_img[1:1+200,1:1+200]
ass_img_1 = ass_img_1[1:1+200,1:1+200]
ass_img_2 = ass_img_2[1:1+200,1:1+200]
ass_img_3 = ass_img_3[1:1+200,1:1+200]

ori_img_float = np.array(ori_img, np.float32)
ass_img_1_float = np.array(ass_img_1, np.float32)
ass_img_2_float = np.array(ass_img_2, np.float32)
ass_img_3_float = np.array(ass_img_3, np.float32)

print(ori_img.shape)
print(ass_img_1.shape)
print(ass_img_2.shape)
print(ass_img_3.shape)


# plt.plot all the test image data
from matplotlib import pyplot as plt

plt.figure()
plt.subplot(2,2,1)
plt.imshow(ori_img)
plt.subplot(2,2,2)
plt.imshow(ass_img_1)
plt.subplot(2,2,3)
plt.imshow(ass_img_2)
plt.subplot(2,2,4)
plt.imshow(ass_img_3)
plt.show()
# 一、使用PSNR算法和SSIM算法对图像质量进行评估

from skimage.metrics import structural_similarity as compare_ssim
from skimage.metrics import peak_signal_noise_ratio

ssim_ori = compare_ssim(ori_img, ori_img, channel_axis = 2) # multichannel=True)
ssim_img_1 = compare_ssim(ori_img, ass_img_1, channel_axis = 2) # multichannel=True)
ssim_img_2 = compare_ssim(ori_img, ass_img_2, channel_axis = 2) # multichannel=True)
ssim_img_3 = compare_ssim(ori_img, ass_img_3, channel_axis = 2) # multichannel=True)

print(f"[SSIM]: ori vs ori is {ssim_ori}")
print(f"[SSIM]: ori vs image1 is {ssim_img_1}")
print(f"[SSIM]: ori vs image2 is {ssim_img_2}")
print(f"[SSIM]: ori vs image3 is {ssim_img_3}")

psnr_ori = peak_signal_noise_ratio(ori_img, ori_img) # compare_psnr(ori_img, ori_img)
psnr_img_1 = peak_signal_noise_ratio(ori_img, ass_img_1)
psnr_img_2 = peak_signal_noise_ratio(ori_img, ass_img_2)
psnr_img_3 = peak_signal_noise_ratio(ori_img, ass_img_3)

print(f"[PSNR]: ori vs ori is {psnr_ori}")
print(f"[PSNR]: ori vs image1 is {psnr_img_1}")
print(f"[PSNR]: ori vs image2 is {psnr_img_2}")
print(f"[PSNR]: ori vs image3 is {psnr_img_3}")

# 二、图像锐度评分算法
## 图像锐度评分是用来描述图像清晰度的一个指标。常见的图像锐度评分算法包括方差法、点锐度法、差分法和梯度法等。


参考 http://192.168.28.17:8889/notebooks/PythonWorkSpace/DeepLearning/d2l-zh/pytorch/ImageQuanlity/Untitled.ipynb

posted on 2024-04-16 21:22  小淼博客  阅读(45)  评论(0)    收藏  举报

大家转载请注明出处!谢谢! 在这里要感谢GISPALAB实验室的各位老师和学长学姐的帮助!谢谢~