在将低分辨率图像放大到高分辨率图像时,哪种方法/算法可提供最佳输出质量?

时间:2011-08-23 23:36:44

标签: image image-processing printing imagemagick resolution

我将尝试尽可能具体。

我正在开展邀请业务,允许人们在线自定义邀请,然后将其发送到打印。我试图找出最好的方法来拍摄他们正在模拟的预览图像并将其输出,使其高分辨率足以打印。

我知道svg是我最好的选择,但问题是我设计的一半不是矢量,而是300 dpi光栅图像。

有没有人对如何拍摄这些300 dpi图像有任何想法,缩小它们以便我可以创建预览图像然后将它们缩放以便我可以打印它们?

我尝试保存为PNG文件,但问题是它们会以72 dpi的速度保存到网上。

2 个答案:

答案 0 :(得分:5)

如果您需要从较低分辨率放大图像,可以使用ImageMagick的convert命令轻松完成。这很简单:

convert  input.png  -scale 400%  4x-input.png

但是,如果您知道如何通过命令行将它们转化为动作,那么有一些非常先进的算法可以提供更好的输出质量。

考虑以下输入图像(原始文件大小为7 kByte,尺寸为108x135像素):

Original PNG, 'ophthalmologist test chart'

现在将其扩展到像素数的16倍(或每个维度的4倍)......

  1. ...首先使用上述'直接缩放'命令,

  2. ...然后使用'更好的缩放质量'命令。

  3. 比较这两个结果:

    Straightforward 400% scaling result Better quality 400% scaling result

    注意文件大小的差异:

    • 两个结果图像的大小均为432x540像素,
    • 但是'质量更好'只使用72 kByte的磁盘空间,
    • 而“直截了当”的缩放使用更多:87.5 kByte!

    您想查看照片的结果吗?我们走了......

    输入照片:

    Old man's photo

    ImageMagick的“直接缩放”(第一个)和“更好的缩放”(第二个)的结果:

    photo scaling 400% straightforward enter image description here

    (两个输入测试文件的学分属于The Weizmann Institute of Science -- Faculty of Mathematics and Computer Science in Israel,他们已经为图像'超分辨率缩放'开发了自己的算法。这里显示的输出是ImageMagick的,与Weizmann Institute的算法无关。 ..)

    '命令'

    最后,这是一个为您提供卓越品质的命令。我在ImageMagick v。'6.7.6-9 2012-05-12 Q16'上运行它以获得您在上面的图像中看到的结果:

    convert                       \
       input.png                  \
      -colorspace RGB             \
      +sigmoidal-contrast 11.6933 \
      -define filter:filter=Sinc  \
      -define filter:window=Jinc  \
      -define filter:lobes=3      \
      -resize 400%                \
      -sigmoidal-contrast 11.6933 \
      -colorspace sRGB            \
       better-quality-enlargement.png
    

    免责声明:此ImageMagick命令绝不是我自己的成就。这是Nicolas Robidoux提出研究的结果。

    关于Nicolas最近的ImageMagick实验,他的解释和注意事项以及他的一些替代命令的更多细节,你可以在这里找到:

答案 1 :(得分:3)

您无法将图像缩小为低分辨率预览版本,然后将其缩放至高分辨率并保持高分辨率质量。如果缩小原始图像,将丢失大量细节,然后将其缩小。

我认为您需要重新考虑应用程序的流程。执行此操作的常规方法是创建预览图像并让用户在Web UI中使用它来创建邀请,但是当他们对其进行修改时,您将其存储为描述修改的元数据,而不是修改后的图像。然后,当需要创建高分辨率图像时,您将返回到原始图像,复制它并将元数据修改应用于高分辨率图像副本,从而保留最大分辨率。

如果您想确保在他们为打印进行祝福之前向他们展示正确的预览,您可以将最后一个批准过程中的一个作为生成高分辨率图像并结合元数据编辑的步骤已完成,然后你拍摄高分辨率图像,并将其作为最终网络预览的网络大小版本。您将使用您为打印创建的高分辨率版本。