【问题标题】:What factors are best for image resizing? [closed]哪些因素最适合调整图像大小? [关闭]
【发布时间】:2014-09-13 12:29:03
【问题描述】:

假设我有一个 3000 像素宽的图像。我知道(至少我认为我知道)如果我将其缩小为 1500 像素宽(即 50%),结果会比我将其调整为 1499 或 1501 像素宽的效果更好。

我想无论使用何种算法都会如此。但我没有确凿的证据,我想要证据的原因是它可以帮助我决定不太明显的案例。

例如,将其减小到 1000 像素(三分之一)大概也可以。但是3/4呢?比1/2好吗?它当然可以容纳更多的细节,但它的一部分不会变得无法挽回地模糊吗?是否有可以抵消实际分辨率的“引起的模糊性”的度量?

例如,我想这样的指标会清楚地显示 3000 -> 1501 比 3000 -> 1500 差,比 1501 > 1500 所获得的要多。

直观地说,1/n 调整大小,其中 n 是原始大小的一个因子,将产生最佳结果,其次是 n/m,其中数字可能是最低的。如果原始大小(X 和 Y)不是分母的倍数,则结果预计会更差,但我没有证据。

这些问题一定有人研究过。人们设计了各种复杂的算法,他们必须以某种方式考虑到这一点。但我什至不知道在这里问这些问题。我在这里问他们是因为我看到相关的答案很好。感谢您的关注,请原谅人为的演示。

【问题讨论】:

  • Image scaling 是一个很大的话题,您的问题可能过于广泛,无法在这里解决。对您的问题的一般回答是“视情况而定”。这取决于使用什么算法进行采样。 一般来说,你唯一能说的就是你把图片缩小得越多,你丢失的信息就越多。使用现代缩放算法,从 3000 缩小到 1500 看起来比缩小到 1600 甚至 1550 看起来更好的可能性很小。
  • 更重要的是,您的直觉似乎是基于这样的想法,即通过删除每个nth 像素来完成缩放,因此将 3000 缩放到 1500 只会删除所有其他像素。这不是大多数缩放算法的工作方式。相反,它们通过检查图像区域并选择具有代表性的颜色来工作。抽样和选择过程可能相当复杂。
  • @JimMischel,您的第二条评论或多或少是中肯的。不,我不是假设像素会被删除,而是代表块会更好地工作,因为它们是原始的整数因子。但是我从我得到的两个答案中看到,没有一个最好的算法以如此简单的方式工作,以至于受此影响很大。我主要考虑的是“像素调整大小”,其中每个像素都将从原始的 n*n 块构建,并且仍然希望对此有答案。
  • 你所说的“像素调整大小”就是我在回答中所说的“像素平均”。
  • @MarkRansom 确实如此。你知道这个问题的讨论吗?当然,不同图像的结果会不均匀,但是有没有人研究过如何普遍量化它?

标签: image algorithm image-processing graphics image-resizing


【解决方案1】:

你的问题的答案:

  1. 最重要的因素是选择一个好的调整大小算法。例如,如果您按因子 > 2 重新调整大小并且不应用平滑,则双三次插值将无法正常工作。不幸的是,没有最好的算法。如果您使用的是 Photoshop 或其他高级调整大小工具,您可以选择该算法。在“Picasa”中,您无法选择。每种算法都有其缺点。有些更适合自然图像,另一些更适合计算机图形生成的图像
  2. 不太重要的因素是舍入。输出图像大小越大,您获得的结果越好,但文件将占用更多兆字节。从 3000 像素重新缩放到 1600 像素会比重新缩放到 1500 得到更好的视觉效果。
  3. 另一个因素 - 重新调整的数量。将图像从 3000 调整到 2000 到 1500 会产生比直接从 3000 调整到 1500 稍差的结果。每次调整图像大小时,都会丢失一些信息
  4. 友好的建议:保持图像的大小(高度和宽度)都可以被 4 整除。例如 1501 是错误的大小,1500 或 1504 更好。原因是某些硬件在处理大小可被 4 整除的图像时速度更快。虽然质量不会提高,但您的浏览体验会更好。
  5. 如果您在计算机屏幕上显示图像,请尝试使其尺寸与您的屏幕尺寸相匹配。否则显示过程会再次重新采样,您将无法观察到图像的真实美感。
  6. 如果您打算打印图像,最好使用高分辨率。您将需要至少 300 dpi。因此,如果您想在 10 英寸的纸张上打印,请至少保留 3000 像素。
  7. 最后一个很明显,但我会提一下:调整图像大小时尽量保持原始纵横比。否则会变形。因此,如果您将其从 3000 宽度缩小到 1499,那么您将无法为图像高度选择整数来保持原始纵横比。
  8. JPEG 压缩对图像的伤害远大于 1500 像素图像和 1499 像素图像之间的视觉质量差异。请记住这一点。即使轻微压缩,您也无法看到质量差异

作为总结 - 不要担心图像的确切大小。选择现代重采样算法(如果可以的话),粗略估计大小作为磁盘大小、图像质量和打印纸大小(如果相关)之间的权衡。 保持原始纵横比,记住 JPEG 压缩对图像的伤害远大于不同重采样算法的视觉质量差异或图像大小的细微变化。

【讨论】:

  • 我认为您的回答很有价值,因为您的所有观点都很好,值得重复,但我的问题是数学问题,而不是感性问题。
【解决方案2】:

算法是关键。这是常见的列表,从最低质量到最高质量。随着质量的提高,输入大小与输出大小的确切比率会产生较小的差异。到列表末尾时,您应该无法区分调整为 1499 或 1500 的大小。

  1. 最近邻,即保留一些像素并丢弃其他像素。
  2. 双线性插值。这将获取理想样本所在点周围的 2x2 像素区域,并根据其位置与 4 个像素中的每一个的接近程度来计算新值。如果您将比例降低到 2:1 以下,则效果不佳,因为它开始类似于最近邻。
  3. 双三次插值。类似于双线性,但使用具有更复杂公式的 3x3 区域来获得更清晰的结果。再次低于 2:1。
  4. 像素平均。如果不使用整数倍的输入到输出来完成此操作,您每次将平均不同的数量,结果将是不均匀的。
  5. Lanczos 过滤。这会从输入中获取一些像素,并通过修改后的 Sinc 版本运行它们,该版本试图保留尽可能多的细节,同时保持计算易于处理。过滤器的大小和速度随调整大小的比例而变化。它很慢,但没有 Sinc 慢。
  6. Sinc 滤波。这在理论上是完美的,但它需要为每个像素输出处理大量输入,因此速度非常慢。当您在输出中看到振铃伪影时,您可能还会注意到理论与实践之间的差异。

【讨论】:

  • 你的回答比较中肯,欢迎讨论算法。它仍然没有回答我的问题,但它说明了为什么它可能没有实际意义。
猜你喜欢
  • 2011-10-04
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2012-05-05
  • 2013-12-21
相关资源
最近更新 更多