最近在做的工作里面有一个地方需要去计算给定的不同图像之间的相似度,对于图像来说其本质上就是一个3维的RGB数据矩阵,知道了这个特性以后,很多相似度计算方法逐渐被提出和实现,这里我针对具体的应用实现列举几种我所用到的相似度计算方法,下面是具体的代码实现:
#!usr/bin/env python
#encoding:utf-8
from __future__ import division
'''
__Author__:沂水寒城
功能: 图片相似度计算方法集合
《python实现常用的相似度计算方法》可以看我之前的文章:
https://yishuihancheng.blog.csdn.net/article/details/89927608
里面有常用相似度计算方法的原理讲解与代码实现
'''
import os
import cv2
import sys
import numpy as np
from numpy import *
from PIL import Image
from sklearn import metrics
from matplotlib import pyplot as plt
from skimage.measure import compare_ssim
from scipy.stats import pearsonr,spearmanr,kendalltau
if sys.version_info==2:
reload(sys)
sys.setdefaultencoding('utf-8')
def image2Vector(img):
'''
图像向量化处理
'''
vec_list=[]
for i in range(3):
for one in img[i].tolist():
vec_list+=[O/255 for O in one]
return vec_list
def pearsonrSimilarity(image1, image2):