是否有可用的DM脚本可以比较两个图像并知道其中的差异

时间:2015-07-12 05:34:25

标签: dm-script

是否有可用的DM脚本可以比较两个图像并知道差异?

我的意思是脚本可以比较两个或更多图像,并且它可以确定两个图像的相似性,例如一个图像的95%区域与另一个图像相同,那么这两个图像的相似度是95%。

该脚本可以比较图像的亮度和对比度分布。

谢谢,

2 个答案:

答案 0 :(得分:0)

这个问题有点不明确,因为图像之间的“相似性”很大程度上取决于你想要的东西。 如果“95%的面积相同”,则意味着95%的像素在图像A和A中具有相同的值。 B,你可以简单地创建一个掩码并sum()来计算像素数,即: sum( abs(A-B)==0 ? 1 : 0 )

然而,如果图像A& A完全失败,这将完全失败。 B甚至通过单个像素相对于彼此移位。如果A& A也会失败。 B具有相同的对比度但绝对值不同。

答案 1 :(得分:0)

我想预期的问题是以模糊方式找到两幅图像的相似性。 对于这些,一种方法是进行交叉相关。 DM具有此功能。像这样,

image xcorr= CrossCorrelate(ref,img)

从xcorr,峰值位置给出两者之间的x和y偏移,峰值强度给出两者的“相似性”。 如果你知道两者之间没有转换,你可以只进行求和和乘法,

number similarity1=sum(img1*img2)

另一种做相似性的方法是计算两者的欧几里德距离:

number similarity2=sqrt(sum((img1-img2)**2)). 

“similarity2”计算“纯”相似性。 “similarity1”是纯粹的相似性加上img1和img2的平均强度。区别在于,

(a-b)**2=a**2+b**2-2*a*b.

左边的术语是“相似性2”,右边的最后一个术语是“交叉相关”或“相似性1”。 我认为“similarity1”被称为互相关,“similarity2”被称为相关系数。 在比较两个衍射图案的示例中,如果要计算相似度,请使用“similarity2”。如果要计算相似度加上衍射图案的某个特征,请使用“similarity1”。