首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图像降维算法

图像降维算法
EN

Stack Overflow用户
提问于 2015-08-07 08:37:44
回答 3查看 3.5K关注 0票数 7

有人知道微软在涂料中使用哪一种芦荟膏来降低图片质量吗?

我正在尝试开发一个小软件(供个人使用),以缩小许多图片(在Java中)。在使用NearestNeighbor、双线性和Bicubic等java函数后,结果质量较差。我使用了Lanczos算法,它给出了更好的结果,但没有达到MS结果:/

注意:使用的油漆版本是Windows 7的版本,我使用的Lanczos实现是Millie项目的LanczosResamplePlugin.java之一,内置java来自Graphics2D:

代码语言:javascript
运行
复制
    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);

如果有人有一个想法来达到同样的质量结果,这将是有帮助的(对于我得到的照片,以及我的知识)。

以下是一些结果:

(我不会发布NN、双线性和双三次结果,这些结果的质量确实很差)

贝娄景观(在谷歌图片上找到)。原始文件大小为1680x1050,而原始文件中的草实际上更锐化(因此绘制结果似乎比Lanczos更好)。

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

Lanczos结果:

与油漆的结果:

另一张图片下面(个人图片),与一些文字。您可以注意到,在Lanczos结果中,文本的可读性(锐度)低于画图结果。此外,在黑色标题文本与带有白色文本的红色区域之间,在Lanczos结果中存在一些噪声,这在油漆结果中是不存在的。在底部,纸上的url在第一个结果上是完全模糊/不可读的,在油漆结果上是可读的。

Lanczos结果:

与油漆的结果:

我坚定地假设MS使用2种算法:1用于缩小规模,第2次通过以锐化结果的图片?但是,由于上一个例子中的底部url仍然是可读的,它可能不是由于缩小结果的锐化而产生的…?

谢谢

编辑

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

下面是png的结果,所以我们会发出噪音。但是结果还是不能像油漆一样可读的。

兰佐斯干酪png

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-07 15:10:02

好吧,我想我能搞定了!

事实上,MS涂料(win7)中没有魔力。它必须使用众所周知的Lanczos算法来调整图像的大小,这似乎是最好的通用重采样算法(在XnView中,我们可以选择重采样算法,这是默认选项)。

因此,我发现了另外两个java实现,每个都给出了不同的结果:

原始图像:landscape-wallpaper-11a.jpg

  1. Milli项目这里的Lanczos

  1. 来自"atyou“日本博客这里的Lanczos

  1. 来自"zattonaka“日本博客这里的Lanczos

  1. 阿尔戈(兰索斯?)来自MS油漆Win7

我个人照片中的第二个结果集:

  1. 来自Milli项目这里

  1. 来自"atyou“的日本博客这里

  1. 来自"zattonaka“日本博客这里

  1. 阿尔戈(兰索斯?)来自MS油漆Win7

项目列表3中的结果似乎是最接近绘制结果的结果(但不是相同的)。它具有清晰、可读性好的文本(第二次测试)和锐利的草,如原始图像(第一次测试)。

Moreovoer,如前所述(编辑部分我的问题),噪音是由于jpeg压缩时保存。结果在这里,是在PNG,所以不受jpeg伪影压缩。

票数 3
EN

Stack Overflow用户

发布于 2018-02-18 19:02:34

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

0.0,-0.125,0.0

-0.125,1.5,-0.125

0.0,-0.125,0.0

ImageMagick命令:

代码语言:javascript
运行
复制
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
票数 4
EN

Stack Overflow用户

发布于 2017-01-20 03:55:42

与亚历克斯所说的相反,我敢肯定,油漆使用的是GDI+提供的高质量双三次法,而not使用的是像扎托纳卡那样的实现。你可以通过要求两者将黑白扫描线交替的图像缩小一条扫描线来判断。

在油漆,黑白扫描线停留在顶部和底部,但淡入深灰色在中间。

Zattonaka的实现保持了整条交替的黑白扫描线,但删除了一条扫描线。原因就在这段代码中:

代码语言:javascript
运行
复制
int bsx = (int)(dx / scale), bsy = (int)(dy / scale);

虽然这在人工条形码图像上有很好的效果,但它所做的实际上是与Lanczos预处理阶段连接在一起的近邻缩放。在现实世界中,它的表现会非常糟糕,这与近邻缩放效果不太好的原因是一样的:它往往会减少一些小细节。多亏了Lanczos卷积,Zattonaka的实现并不像最近的直接了当的邻居那么糟糕,但有些图像仍然非常糟糕。

如果你在寻找像油漆这样的东西,最好尝试一个好的双三次插值和预锐化,以抵消下降的模糊。你可能得稍微调整一下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31873215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档