如何测量两幅图像的相似度

时间:2014-08-13 13:06:41

标签: image-processing similarity

我有一个程序,用户通过在5x5网格上放置形状(正方形,圆形,三角形,矩形)来绘制图像,其中形状的角位于网格单元格中,而圆形位于一个网格单元格中。

我想使用该图像生成类似的图像。我曾经想过使用类似字符串编辑距离的东西,我将一个形状替换为类似于它的形状,但需要有一些方法来定义哪些形状相似且具有什么价值。

任何人都可以建议一种方法或算法,可用于在生成整个图像后测量图像的相似性,以及用于测量各个形状的相似性的方法或算法吗?我想最终能够说给定图像,如果两个图像的编辑距离小于某个值x,我可以得到类似的图像。我需要一个算法和支持信息,可以帮助我达到这个价值。

1 个答案:

答案 0 :(得分:0)

我必须承认,我可能没有100%理解你的问题。

但是,您是在寻找基于图像的某些结构参数的相似性度量,还是基于最终图像的整体形状/强度分布?

最终图像是普通的“光栅”图像,即每个像素中具有给定强度的像素阵列吗? 如果是这样,一个简单的互相关系数可以满足您的需求吗?您可能需要在应用互相关之前预处理两个图像(如边缘搜索过滤器等)

(它被归一化[0,1],其中一个是精确的图像强度匹配。)

修改:根据您的评论,我现在添加了一个示例。 (在DigitalMicrograph中计算) 我创建了4个大小为140x140像素的简单图像,然后计算了相应对的互相关(CC)图像。 CC图像排列在矩阵中,并以温度颜色方案显示,以便更好地显示。每个CC图像中的值指的是该像素中的最大值,这是CC效率。完美匹配应为1,完美“反对”应为0。由于数值舍入问题,在此示例中,图像与其自身的“自相关”不完全是1。

但是,我仍然不确定这是否真的能帮到你并回答你的问题。 CC清楚地定义了两个图像的“相似度”,但确切的值取决于图像中有多少像素,它们如何相互旋转,以及像素的精确值是多少。 (我用0表示黑色,1表示白色)。它还要求将两个图像进行比较,使其具有相同的像素大小。

enter image description here