给定两个大小相等的二进制矩阵,计算模式相似性得分



假设我有两个4*4矩阵(表示二进制图像),我想计算两个矩阵上显示的图案的相似性分数(从0到1)。两个矩阵之间的"on"像素数始终相同,例如:

M1
0 1 1 1
0 0 0 1
0 0 0 0
0 0 0 0
M2
0 0 0 0
0 0 0 0
1 1 1 0
0 0 1 0
M3
1 0 0 1
0 0 0 0
0 0 0 0
1 0 0 1
M4
0 0 0 0
1 1 1 0
0 0 0 1
0 0 0 0

在这种情况下,我希望M1:M2给出一个完美的分数(1),因为模式的定位无关紧要。M1:M3的得分应该很差,M1:M4的得分会很好,但不完美。目前,我只对相同方向的图案感兴趣,所以不需要检查图案方向。

如有任何相关算法的帮助或建议,我们将不胜感激!

这方面的最终实现将在Matlab中编写,但我正在用Python编写一个初始测试实现,所以两者中的库都很好:)

似乎conv2上的操作是相关的,但这只是建议的。这里有一种不同的方法,因为M1和M2是相同的,它们有相同的主成分,所以svd可以作为相似性的衡量标准,例如:

abs(sum(svd(M1)-svd(M2)))
ans =
   1.1102e-16
abs(sum(svd(M1)-svd(M4)))
ans =
   0.1189
abs(sum(svd(M3)-svd(M4)))
ans =
    0.7321

这是直接的计算机视觉,但这里有一个简单的开始:为每个可能的排列将两个矩阵卷积。

相关内容

  • 没有找到相关文章

最新更新