我提取自图像的点的图表,如何衡量两个不同图表之间的相似度?
每个点都有一个x坐标、y坐标和大小。
例如,下面这两个图应该看起来差不多:
图 1-A:
图 1-B:
而下面这两个图则不应该看起来差不多:
图 2-A:
图 3-A:
有没有什么算法或者方法可以用来判断这些图的相似性呢?
我尝试为每个图创建一个特征向量,比如每个象限中的点数、最大点的大小、两个最大点之间的距离,并计算余弦相似度。但是我发现对于不匹配的图,得到的相似度却很高。我在考虑为此创建一个机器学习模型,并研究了孪生网络,但一直无法正确训练。
1 个回答
1
你可以把你的数据转换成一个矩阵,这个矩阵覆盖了你在x,y坐标平面上的整个区域,每个点代表矩阵的一部分。这样大的数据点就会自动被表示出来。矩阵中的1表示这个位置有东西,0则表示这个位置是空白。
举个例子,如果你有一个3X3的区域,可以像下面这样创建一个矩阵:
101
010
111
然后
111
011
101
你可以对这两个矩阵进行余弦相似度计算,来评估它们之间的相似程度。OpenCV中可能有一些库可以帮助你实现这个,我的回答主要是告诉你需要达到的基本原理。你面临的主要问题是如何将你的数据表示得更方便进行比较。