3

我正在使用 scikit-image SSIM 来比较两个图像之间的相似性。问题是我得到了负值,这不利于我的目的。我知道 SSIM 值的范围应该在 -1 到 1 之间,但我只需要得到一个正值,并且我希望这个值随着两个图像之间相似性的增加而减小。我一直在想两种方法来处理这个问题。首先,从 1 中减去 SSIM 值:

Similarity Measure=(1-SSIM)

现在,它在完全匹配的情况下给出零(SSIM=1),在没有相似性的情况下给出 1(SSIM=0)。但是,由于 SSIM 也会导致 -1 和 0 之间的负值,因此我也会得到大于 1 的值,我不知道如何解释。特别是不知道SSIM什么时候返回负值,是什么意思。SSIM 值在 -1 和 0 之间的图像是否比 SSIM 为 0 的图像更不相似?因为,如果不是这种情况,那么我的相似性度量将导致问题(当 SSIM 为负时,它会导致值大于 1,这意味着与 SSIM=0 的情况相比相似性更低)。我正在考虑使用的另一个度量是结构差异 (DSSIM),其定义如下:

DSSIM=(1-SSIM)/2

当两个图像完全相同时,这将返回 0,这正是我正在寻找的,但是当 SSIM=-1 时 DSSIM=1,这与根本没有相似性相对应,当 SSIM=0 时返回 1/2。同样,这仅在负值的 SSIM 显示的相似性低于 SSIM=0 时才有用,正如我所提到的,这是我不知道的,也找不到任何解释 SSIM 中每个值的对应的东西两幅图像之间的相似程度。我希望有人可以帮助我进行这种解释或以某种方式仅获得 SSIM 的 0 和 1 值。

编辑:正如我在评论中提到的,SSIM 可能是负数,这是由可能是负数的两个图像的协方差引起的。在 Skimage SSIM 源代码中,两幅图像的协方差用 vxy 表示,在某些情况下它可以是负数。至于 SSIM 的负值在相似性方面的解释,我还不确定,但本文指出,当局部图像结构反转时会发生这种情况。尽管如此,我还是在看起来不像彼此倒置结构的图像中看到了这一点。但是,我想 local 在这里很重要,这意味着两个图像可能看起来不像彼此的倒置版本,但它们的结构在 local倒置。这是正确的解释吗?

4

1 回答 1

1

是的,两张图片的相似度SSIM = 0比 好SSIM = -1,所以你可以使用:

1 - (1 + SSIM ) / 2 
于 2018-03-26T21:08:30.983 回答