不同图像分辨率之间的 SSIM

Posted

技术标签:

【中文标题】不同图像分辨率之间的 SSIM【英文标题】:SSIM between different image resolutions 【发布时间】:2015-05-08 13:01:22 【问题描述】:

我需要比较 Linux 桌面服务器和 android 客户端之间的流媒体质量。所以我有两张图片,一张来自 Linux 服务器,另一张来自 Android 客户端,它们的分辨率不同。

我的问题是如何计算这两个图像之间的 SSIM(我不需要 CODE 只是一个解决方案的方向)。我已经有 C++ 中的 SSIM 代码,但它会在相似的分辨率之间进行比较。

谢谢

【问题讨论】:

【参考方案1】:

您想要实现的目标并不完全直截了当。使用像 SSIM 这样的度量来比较两个不同分辨率的图像的客观质量是不明确的。这是由多种因素造成的,其中最重要的是:

a) 与采样相关,其中将参考图像中的多个样本与缩小(降级)图像中这些样本的子集进行比较并不是特别有意义(您如何将某物与无物进行比较?)

b) 由于人类视觉系统的特性,最显着的是对比敏感度函数,在这种情况下可以概括为人类观察者会因不同的空间频率而对样本的亮度有不同的感知。

这里的前进方向取决于实际问题的表述,尚不清楚。您要测量的究竟是什么?如果您正在测量重采样算法的质量,那么 SSIM 不是一个合适的指标。如果您要测量两个不同图像集的相对质量,那么显而易见的答案是创建两个不同分辨率的未压缩图像,分别编码和测量它们,然后比较它们各自的 SSIM 值。

请注意,原始 SSIM 并未考虑可能会发挥作用的各种 HVS 属性,您最好尝试找到不同的指标。此外,如果您要测量流(即视频)的质量,SSIM 的性能并不是特别好。

【讨论】:

【参考方案2】:

您可以使用以下解决方法: 缩小较大的图像以匹配较小图像的分辨率。

按比例缩小后,您可以将图像与 SSIM 进行比较

【讨论】:

感谢您的回答。我会试试的。 我确实使用了调整大小,但 SSIM 值非常非常低。那么还有其他方法吗? 有什么建议可以比较两种不同的图像分辨率吗?

以上是关于不同图像分辨率之间的 SSIM的主要内容,如果未能解决你的问题,请参考以下文章

为啥传感器尺寸的纵横比和图像分辨率的纵横比不同?

Python 不同分辨率图像峰值信噪比[PSNR]

prismtif分辨率1200导不出

如何使用 python 比较一个图像和许多其他图像之间的 SSIM?

如何实现不同分辨率的图像

Asp.net:不同屏幕分辨率的可变图像源