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

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

谢谢

最佳答案

您想要实现的目标并非一帆风顺。使用像SSIM这样的度量标准比较两个不同分辨率的图像的客观质量是不明确的。这是由于多种因素引起的,其中最重要的是:

a)与采样有关,在这种情况下,将引用图像中的多个样本与降级(降级)图像中的那些样本的子集进行比较不是特别有意义(您如何将某物与无物进行比较?)

b)由于人类视觉系统的特性,最明显的是对比度敏感度函数,在这种情况下,可以归纳为:由于空间频率不同,人类观察者将以不同的方式感知样品的亮度。

前进的方向取决于实际的问题表达方式,目前尚不清楚。您到底要测量什么?如果要测量重采样算法的质量,则SSIM不适用于该度量标准。如果要测量两个不同图像集的相对质量,那么显而易见的答案是创建两个具有不同分辨率的未压缩图像,分别对其进行编码和测量,并比较它们各自的SSIM值。

请注意,原始的SSIM并没有考虑将要发挥作用的各种HVS属性,如果您想找到其他度量标准可能会更好。另外,如果您要测量流(即视频)的质量,则SSIM并不是特别有效。

关于android - 不同图像分辨率之间的SSIM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30124563/

10-12 05:49