假设我想在我的程序中包含图像放大/缩小算法。执行时间并不重要,结果“质量”是。在这种情况下如何定义“质量”,然后如何从可用选项中选择最佳算法?
另一方面,如果这太笼统,我试图找到解决方案的根本问题是:假设我有很多图像需要在运行时升级(视频,实际上)。我可以使用慢速和高质量的算法对它们进行预处理并稍微提升它们,但我不知道最终的分辨率(好吧,毕竟人们有不同的显示器),所以我无法立即调整它。如果我用我的高质量算法稍微升级它,然后让玩家在运行时将其进一步升级到必要的分辨率(使用快速但低质量的算法)会有用吗?或者我应该按原样保留视频,并在运行时一次性完成所有升级?
答案 0 :(得分:1)
真正客观地判断质量的唯一方法是进行一些(半)科学研究。招募几位参与者。以随机顺序向他们展示放大的图像,并让他们对主观质量进行排名(双盲的奖励积分)。然后平均得分并选择平均得分最高的算法(也许可以测试统计显着性)。
您需要确保您测试的图像能够对您正在使用的实际图像进行代表性采样。如果你正在为视频做这件事,那么使用短视频剪辑作为测试图像而不是静止图像可能是个好主意,因为我怀疑人们会认为这两者的升级质量不同。
如果您不关心严谨性,您可以将自己作为唯一的测试对象进行测试。
至于做一个初步的预定标,我的猜测是不值得的。从较大的图像放大不应该比从较小的原始图像放大那么便宜,我希望它比通过一个方便的因素(例如2x)进行扩展要贵得多。但是,不要相信我的话......测试!