-2

是否有任何可用的 DM 脚本可以比较两个图像并知道区别?

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

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

谢谢,

4

2 回答 2

0

这个问题有点不明确,因为图像之间的“相似性”很大程度上取决于你想要什么。如果“95% 的区域相同”是指图像 A 和 B 中 95% 的像素具有相同的值,则可以简单地创建一个蒙版并sum()计算像素数,即: sum( abs(A-B)==0 ? 1 : 0 )

但是,如果图像 A 和 B 相对于彼此移动了一个像素,这将完全失败。如果 A 和 B 具有相同的对比度但绝对值不同,它也会失败。

于 2015-07-12T19:31:18.333 回答
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.

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

于 2016-06-02T04:30:27.347 回答