image-processing - 如何比较两种图像缩放算法的 "quality"?

标签 image-processing comparison

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

附带说明一下,如果这太笼统了,我试图找到解决方案的根本问题是:假设我有很多图像需要在运行时升级(实际上是视频)。我可以对它们进行预处理并使用一种缓慢而高质量的算法对它们进行一定程度的放大,但我不知道最终的分辨率(好吧,毕竟人们有不同的显示器),所以我不能立即调整大小。如果我用我的高质量算法稍微放大它,然后让播放器在运行时将它进一步放大到必要的分辨率(使用快速但低质量的算法)会不会有好处?或者我应该保持视频原样,并在运行时一次性完成所有升级?

最佳答案

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

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

如果你不在乎严谨性,你可以以自己为唯一的测试对象进行测试。

至于进行初始预缩放,我的猜测是不值得。从较大的图像放大不应该比从较小的原始图像放大更便宜,而且我希望它比通过方便的因素(例如 2 倍)放大更昂贵。但是,不要相信我的话......测试!

关于image-processing - 如何比较两种图像缩放算法的 "quality"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6212212/

相关文章:

opencv - 如何在OpenCV中获得gabor核矩阵的实部和虚部

python - 如何测试多个变量与单个值的相等性?

c++ - 比较两个整数而不进行任何比较

matlab - 对相邻像素进行有效修复

c++ - WICConvertBitmapSource BGR 到 Gray 意外像素格式转换

image-processing - 如何在SO上生成用户ID图像?

python - 为什么我不能调整 PNG 文件的亮度级别

java - 比较java中的结构化数据

sorting - Lisp - 检查列表是否已排序

检查颜色相似性的算法