如何比较两种图像缩放算法的"质量"?

Vil*_*lx- 5 comparison image-processing

假设我想在我的程序中包含图像放大/缩小算法.执行时间并不重要,结果"质量"是.在这种情况下如何定义"质量",然后如何从可用选项中选择最佳算法?


在旁注中,如果这太笼统,我试图找到解决方案的根本问题是:假设我有很多图像需要在运行时升级(实际上是一个视频).我可以使用慢速和高质量的算法对它们进行预处理并稍微提升它们,但我不知道最终的分辨率(好吧,毕竟人们有不同的显示器),所以我无法立即调整它.如果我用我的高质量算法稍微升级它,然后让玩家在运行时将其进一步升级到必要的分辨率(使用快速但低质量的算法)会有用吗?或者我应该按原样保留视频,并在运行时一次性完成所有升级操作?

Jer*_*wen 1

真正客观地判断质量的唯一方法是进行一些(半)科学研究。招募多名参与者。以随机顺序向他们展示放大的图像,并让他们对主观质量进行排名(双盲进行奖励积分)。然后,对分数进行平均并选择平均分数最高的算法(也许还可以测试统计显着性)。

您需要确保您测试的图像能够提供您正在使用的实际图像的代表性样本。如果您要制作视频,那么使用短视频剪辑而不是静止图像作为测试图像可能是个好主意,因为我怀疑人们会对这两者的升级质量有不同的看法。

如果你不关心严格性,你可以只以你自己作为唯一的测试对象来进行测试。

至于进行初始预缩放,我的猜测是不值得。从较大的图像进行放大不应比从较小的原始图像进行放大要便宜得多,而且我认为它比按方便的系数(例如 2 倍)进行放大要贵得多。然而,不要相信我的话......测试!