给自己记录下来,方便以后查找
#SSIM计算图像相似性
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
im1 = tf.image.decode_image(tf.io.read_file('vi3.png'))
im2 = tf.image.decode_image(tf.io.read_file('3.png'))
tf.shape(im1) # `img1.png` has 3 channels; shape is `(255, 255, 3)`
tf.shape(im2) # `img2.png` has 3 channels; shape is `(255, 255, 3)`
# Add an outer batch for each image.
im1 = tf.expand_dims(im1, axis=0)
im2 = tf.expand_dims(im2, axis=0)
# Compute SSIM over tf.uint8 Tensors.
ssim1 = tf.image.ssim(im1, im2, max_val=255, filter_size=11,filter_sigma=1.5, k1=0.01, k2=0.03)
print(ssim1)
import cv2
import numpy as np
import math
import skimage.metrics
# 参数0表示读入即为灰度图
img = cv2.imread('vi3.png',0)
img_fu = cv2.imread('3.png',0)
# 结构相似性
ssim = skimage.metrics.structural_similarity(img, img_fu, data_range=255)
print(ssim)
skimage的版本如果和python不同,需要改一下,以前的是skimage.measure,直接是compare_ssim,同理的还有psnr,mse,nrmse,降版本也行