不同图像分辨率之间的SSIM

时间:2015-05-08 13:01:22

标签: android c++ ssim

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

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

感谢

2 个答案:

答案 0 :(得分:2)

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

a)与采样相关,其中参考图像中的多个样本与缩小(降级)图像中的那些样本的子集的比较不是特别有意义(如何比较某些东西与什么都没有?)

b)由于人类视觉系统的特征,最值得注意的是对比敏感度函数,在这种情况下可以归结为人类观察者由于不同的空间频率而不同地感知样本的亮度。 / p>

前进的方向取决于实际的问题制定,这一点尚不清楚。您正在尝试衡量的是什么?如果您正在测量重采样算法的质量,那么SSIM就不是适当的度量标准。如果您正在尝试测量两个不同图像集的相对质量,那么明显的答案是在不同的分辨率下创建两个未压缩的图像,分别编码和测量它们,并比较它们各自的SSIM值。

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

答案 1 :(得分:-1)

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

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