图像缩减算法

Ale*_*xxx 6 image-processing

有人知道微软在Paint中使用了哪些alogirhtm来缩小图片尺寸?

我正在尝试开发一个小软件(供个人使用)以缩减很多图片(用Java).在使用"内置"java函数作为NearestNeighbor,Bilinear和Bicubic之后,结果质量很差......我使用了Lanczos算法,它给出了更好的结果,但没有达到MS Paint结果:/

注意:使用的Paint版本是Windows 7之一,我使用的Lanczos实现是Millie项目LanczosResamplePlugin.java之一,而builtins java来自Graphics2D:

    g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE);
Run Code Online (Sandbox Code Playgroud)

如果有人想要达到相同质量的结果,它将是有帮助的(对于我的结果图片,以及我的知识).

一些结果在这里:

(我没有发布NN,双线性和双三次结果,结果质量很差)

Bellow a landscape(在谷歌图片上找到).原始文件大小为1680x1050,并且草在原始文件中非常锐利(因此Paint结果似乎比Lanczos更好).

原始图像可以在这里查看:landscape-wallpaper-11a.jpg

Lanczos结果:

Lanczos景观

vs Paint结果:

画风景

另一张图片(人物照片),带有一些文字.您可以注意到,在Lanczos结果中,文本的可读性(不那么锐化)比在Paint结果中更少.此外,在黑色标题文本和带有白色文本的红色区域之间,在Lanczos结果中存在一些噪声,这在Paint结果中不存在.在底部,纸张上的网址在第一个结果上完全模糊/不可读,并且在Paint结果中可读.

Lanczos结果:

Lanczos奶酪

vs Paint结果:

画谢谢

我首先想假设MS使用2种算法:1降低比例,第2次通过锐化生成的图像?但是,由于最后一个示例中的底部网址仍然可读,可能不是因为缩小的缩小结果而导致的?

谢谢

编辑

好吧,我有点愚蠢...图片上的噪音是由于jpeg压缩质量(我在保存图片时没有在我的Java代码中设置).

下面是png的结果,所以噪音很大.但是结果仍然不像油漆那样可读.

Lanczos奶酪png

Lanczos奶酪png

小智 6

MSPaint 使用双线性插值,然后使用卷积核锐化图像:

0.0,-0.125,0.0

-0.125, 1.5, -0.125

0.0,-0.125,0.0

ImageMagick命令:

magick image.png -scale 512 -morphology Convolve "3x3: 0.0, -0.125, 0.0 -0.125, 1.5, -0.125 0.0, -0.125, 0.0" image_resized.png
Run Code Online (Sandbox Code Playgroud)


Ale*_*xxx 3

好吧,我想我已经明白了!

事实上,MS Paint (win7) 并没有什么神奇之处。它必须使用众所周知的 Lanczos 算法来缩小(和放大?)图像大小,这似乎是最好的通用重采样算法(似乎在 XnView 中,我们可以选择重采样算法,它是默认选项)。

所以,我发现了另外 2 个 java 实现,每个实现都给出了不同的结果:

原图:风景-wallpaper-11a.jpg

  1. 来自 Milli 项目的 Lanczos在这里 兰索斯景观 1

  2. Lanczos 来自“atyou”日语博客此处 兰索斯景观 2

  3. Lanczos 来自“zattonaka”日语博客此处 兰索斯景观 3

  4. MS Paint Win7 中的 Algo(Lanczos?) 风景 MS 油漆

我的第二个结果集来自我的一张个人照片:

  1. 来自 Milli 项目在这里 兰佐斯奶酪 1

  2. 来自“atyou”日语博客这里 兰佐斯奶酪 2

  3. 来自“zattonaka”日语博客这里 兰佐斯奶酪 3

  4. MS Paint Win7 中的 Algo(Lanczos?) 奶酪 MS 油漆

项目列表 3 中的结果似乎与 Paint 结果最接近(但不相同)。它具有清晰易读的文本(第二次测试)和与原始图像一样清晰的草(第一次测试)。

此外,正如之前所说(编辑我的问题的一部分),噪音是由于保存时的 jpeg 压缩造成的。上面的结果是 PNG 格式,因此不会受到 jpeg 伪影压缩的影响。