2011-06-02 118 views
5

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


在一个侧面说明,如果这是太一般了,为此我试图找到一个解决的根本问题是这样的:假设我有很多,我需要高档的在运行时图像(实际上是一个视频)。我可以对它们进行预处理,并用慢速和高质量的算法对它们进行高级处理,但我不知道最终的解决方案(好吧,人们终究有不同的监视器),所以我无法立即调整大小。如果我用我的高质量算法对它进行一些放大,然后让播放器在运行时将其进一步升级为必要的分辨率(使用快速但质量较低的算法),会有好处吗?或者我应该保留原始视频,并在运行时一次性完成所有的升级?

回答

1

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

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

如果您不关心严谨性,那么您可以仅将自己作为测试对象进行测试。

至于做一个初步prescaling,我的猜测是,它不值得。从较大的图像扩大规模不应该比从较小的原始规模扩大那么便宜,而且我希望它比通过方便的因素(如2x)扩展更昂贵。但是,不要拿我的话......测试!