前言:
眼前朋友们对“余弦相似度算法 应用”大致比较重视,你们都需要学习一些“余弦相似度算法 应用”的相关知识。那么小编在网摘上网罗了一些对于“余弦相似度算法 应用””的相关知识,希望你们能喜欢,大家快快来了解一下吧!求以下2张图片的相似度(图片来源懂车帝):
from PIL import Imageimport numpy as npdef get_thum(image, size=(64, 64), greyscale=False): # 利用image对图像大小重新设置, Image.ANTIALIAS为高质量的 image = image.resize(size, Image.ANTIALIAS) if greyscale: # 将图片转换为L模式,其为灰度图,其每个像素用8个bit表示 image = image.convert('L') return image# 计算图片的余弦距离def image_similarity_vectors_via_numpy(image1, image2): image1 = get_thum(image1) image2 = get_thum(image2) images = [image1, image2] vectors = [] norms = [] for image in images: vector = [] for pixel_tuple in image.getdata(): vector.append(np.average(pixel_tuple)) vectors.append(vector) # linalg=linear(线性)+algebra(代数),norm则表示范数 # 求图片的范数?? norms.append(np.linalg.norm(vector, 2)) a, b = vectors a_norm, b_norm = norms # dot返回的是点积,对二维数组(矩阵)进行计算 res = np.dot(a / a_norm, b / b_norm) return resif __name__ == '__main__': image1=Image.open(r"C:\Users\yellow\Desktop\sam\t1.png") image2 = Image.open(r"C:\Users\yellow\Desktop\sam\t2.png") result=image_similarity_vectors_via_numpy(image1,image2) print(result)
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #余弦相似度算法 应用