Algorithm 什么是最好的图像缩小算法(质量方面)?

Algorithm 什么是最好的图像缩小算法(质量方面)?,algorithm,image,resize,Algorithm,Image,Resize,我想找出哪种算法是最好的,可以用来缩小光栅图片。我说的“最佳”是指能产生最佳效果的。我知道双三次曲线,但还有更好的吗?例如,我从一些人那里听说Adobe Lightroom有某种专有算法,它比我使用的标准双三次曲线产生更好的结果。不幸的是,我想自己在我的软件中使用这个算法,所以Adobe谨慎保护的商业秘密是不行的 增加: 我查看了Paint.NET,令我惊讶的是,在缩小图片尺寸时,超级采样似乎比双三次采样更好。这让我想知道插值算法是否是一种可行的方法 这也让我想起了我自己“发明”的一个算法,但从

我想找出哪种算法是最好的,可以用来缩小光栅图片。我说的“最佳”是指能产生最佳效果的。我知道双三次曲线,但还有更好的吗?例如,我从一些人那里听说Adobe Lightroom有某种专有算法,它比我使用的标准双三次曲线产生更好的结果。不幸的是,我想自己在我的软件中使用这个算法,所以Adobe谨慎保护的商业秘密是不行的

增加:

我查看了Paint.NET,令我惊讶的是,在缩小图片尺寸时,超级采样似乎比双三次采样更好。这让我想知道插值算法是否是一种可行的方法

这也让我想起了我自己“发明”的一个算法,但从未实现过。我想它也有一个名字(因为这种琐碎的东西不可能是我一个人的想法),但我在流行的名字中找不到它。超级抽样是最接近的一种

这个想法是这样的——对于目标图片中的每个像素,计算它在源图片中的位置。它可能会覆盖一个或多个其他像素。然后可以计算这些像素的面积和颜色。然后,要得到目标像素的颜色,只需计算这些颜色的平均值,将它们的面积相加为“权重”。因此,如果目标像素覆盖1/3的黄色源像素和1/4的绿色源像素,我会得到(1/3*黄色+1/4*绿色)/(1/3+1/4)

这自然需要大量计算,但它应该尽可能接近理想值,不是吗


这个算法有名字吗?

有一个比双三次算法慢,但能生成更高质量的图像。

我刚才看到一篇关于Slashdot的文章,它可能值得一看

接缝雕刻是一种图像大小调整 Shai Avidan和 阿里尔·沙米尔。这个算法改变了 图像的尺寸不是由 缩放或裁剪,而是通过 智能地从(或 将像素添加到)带有 不重要


您描述的算法称为线性插值,是速度最快的算法之一,但在图像上不是最好的。

(双)线性和(双)立方重采样不仅难看,而且在按小于1/2的因子缩小时错误得可怕。它们将导致非常糟糕的混叠,类似于如果按1/2的因子进行向下扫描,然后使用最近邻向下采样所得到的混叠

就我个人而言,我建议对大多数下采样任务使用(面积)平均样本。它非常简单、快速且接近最优。高斯重采样(选择与因子倒数成比例的半径,例如,半径5用于向下采样1/5)可能会在计算开销稍大的情况下提供更好的结果,并且在数学上更合理


使用高斯重采样的一个可能原因是,与大多数其他算法不同,它对上采样和下采样都能正常工作(不会引入伪影/锯齿),只要您选择适合重采样因子的半径。否则,为了支持两个方向,您需要两个单独的算法-面积平均用于下采样(这将降级为最近邻用于上采样),以及类似(双)立方的算法用于上采样(这将降级为最近邻用于下采样)。从数学上看高斯重采样的一个好特性是,半径非常大的高斯近似面积平均,半径非常小的高斯近似(双)线性插值。

不幸的是,我找不到原始调查的链接,但随着好莱坞电影摄影师从电影转向数字图像,这个问题出现了很多,因此有人(可能是SMPTE,可能是ASC)召集了一群专业摄影师,向他们展示了使用一系列不同算法重新缩放的镜头。结果是,对于这些观看大型电影的专业人士来说,一致认为Mitchell(也称为高质量的Catmull Rom)最适合放大,而sinc最适合缩小。但是sinc是一个理论上的滤波器,它会无限大,因此无法完全实现,所以我不知道他们所说的“sinc”到底是什么意思。它可能指的是sinc的截断版本Lanczos是sinc的几种实用变体之一,它试图改进只是截断它,并且可能是缩小静态图像的最佳默认选择。但通常情况下,这取决于图像和所需内容:例如,缩小线条以保留线条是一种情况,在这种情况下,您可能更喜欢强调保留边缘,而这在缩小花朵照片时是不受欢迎的

目前有一个很好的例子,说明了各种算法的结果

fxguide的同事们一起研究了缩放算法(以及许多其他关于合成和其他图像处理的东西),值得一看。它们还包括在您自己进行测试时可能有用的测试图像

现在,如果你真的想进入ImageMagick,它有一个

具有讽刺意味的是,关于缩小图像的争议比关于放大的争议更大,从理论上讲,这是一件可以完美完成的事情,因为你只是在扔掉信息,而不是试图添加不存在的信息。但从兰佐开始

这个算法有名字吗

在文献中,它可能被称为“盒子”或“窗口”重采样。 实际上,它的计算成本比你想象的要低

它还可用于创建一个中间位图,该位图随后由双立方插值使用,以避免在向下采样超过1/2时出现锯齿。

如果有人感兴趣,h