【问题标题】:How to compare the "quality" of two image scaling algorithms?如何比较两种图像缩放算法的“质量”?
【发布时间】:2013-11-15 05:27:52
【问题描述】:
假设我想在我的程序中包含一个图像放大/缩小算法。执行时间不重要,结果“质量”才是。在这种情况下,您如何定义“质量”,然后如何从可用选项中选择最佳算法?
附带说明,如果这太笼统了,我试图找到解决方案的根本问题是:假设我有很多图像需要在运行时升级(实际上是一个视频)。我可以使用缓慢而高质量的算法对它们进行预处理并稍微放大它们,但我不知道最终分辨率(嗯,毕竟人们有不同的显示器),所以我不能立即调整到那个。如果我用我的高质量算法稍微放大它,然后让播放器在运行时将它进一步放大到必要的分辨率(使用快速但低质量的算法),会不会有好处?还是应该让视频保持原样并在运行时一次性完成所有升级?
【问题讨论】:
标签:
image-processing
comparison
【解决方案1】:
真正客观地判断质量的唯一方法是进行一些(半)科学研究。招募几名参与者。以随机顺序向他们展示放大的图像,并让他们对主观质量进行排名(双盲的奖励积分)。然后你平均分数并选择平均分数最高的算法(也许测试统计显着性)。
您需要确保您测试的图片对您正在使用的实际图片具有代表性。如果您正在为视频做这件事,那么使用短视频剪辑而不是静止图像作为测试图像可能是个好主意,因为我怀疑人们会对这两者的升级质量有不同的看法。
如果你不在乎严谨性,你可以把自己作为唯一的测试对象进行测试。
至于进行初始预缩放,我的猜测是不值得。从较大的图像放大不应该比从较小的原始图像放大更便宜,而且我希望它比放大一个方便的因素(例如 2 倍)要贵得多。但是,不要相信我的话...测试!