2014-04-22 32 views

回答

0

对此,可能没有一个最佳答案,因为它取决于您想要如何度量图像的相似度。然而,我们可以尝试几个想法,看看什么适合您的情况:

一个简单的想法是计算矩阵中每个单元的平方误差(假设矩阵具有相同的尺寸ROWS,COLS)。因此,对于矩阵M1和M2的距离度量是:

MAT diff_matrix = M1 - M2; 
double distance = diff_matrix.norm(); 

如果矩阵具有不同的尺寸,只需要添加新的行/列以更少的行/列矩阵和填补这些额外的条目以0。

上面的想法在你想要检测到一个矩阵与其他区域在相同区域中的颜色几乎相同的情况下工作得很好。但是,根据您的DFT定义以及如何测量颜色,将另一种颜色替换为另一种颜色可能会导致其他类似图像的测量结果相当不同。因此,另一个想法是首先通过使图像中第k个最流行的颜色与预定义的颜色方案中的第k个颜色相对应来对图像的颜色方案进行归一化。

另一个想法是首先计算矩阵的特征向量,然后计算特征向量的差异,然后平方差。如果矩阵不是正方形,则需要计算这些矩阵的奇异值分解(SVD)以执行这些操作。比较特征向量的优点是只要矩阵的行或列的排序相同,特征向量就会相同。

最后,您可能会考虑将这些想法混合使用,并将其结果以线性组合结合起来。