两个矩阵之间的余弦相似度

时间:2020-07-08 14:14:22

标签: python image-processing matrix cosine-similarity

我有两个均为256x256的数组,当我使用色图绘制它们时,其中的信息具有两个不同的单位(一个单位为米,另一个单位为度),图像看起来非常相似,但是我知道该信息它们之间的大小和单位完全不同。因为图像看起来很像,所以我想计算出彼此相似程度的百分比。 (我知道这样说比较含糊,但我愿意就如何比较它们提出想法)

到目前为止,我在两个矩阵之间使用scikitlearn cosine_similarity函数,但是在理解所得矩阵的含义时遇到了问题。

那么哪个值代表相似性?有没有更好的方法来分析两个图像? (附有图片)

import numpy as np
import matplotlib.pyplot as plt
from sklearn import metrics


matrix_A=dataA #256x256 matrix 
matrix_B=dataB #256x256 matrix

sim_AB=metrics.pairwise.cosine_similarity(A,B) #Similarity matrix
plt.imshow(sim_AB)

dataA dataB

similarity_matrix

1 个答案:

答案 0 :(得分:1)

我相信cosine_similarity将矩阵视为列上的特征和行上的样本(或相反)。因此,就像您拥有256个功能部件和256个样本(每个示例)一样,结果是这些功能部件之间的比较。也许scipy的{​​{1}}是您要找的东西?这将计算两个图像之间的相关性。相关性越高,它们越相似。另外,您可以定义一些度量标准并计算距离,例如correlate2d,但是如果单位不同,则意义不大。