Chinaunix

标题: 请教熟悉图形开发的高手,如何将校验图片放大并变清晰??? [打印本页]

作者: devilring    时间: 2012-10-12 14:57
标题: 请教熟悉图形开发的高手,如何将校验图片放大并变清晰???
本帖最后由 devilring 于 2012-10-12 14:59 编辑

原图:
我在vc2010下测试了2种方式,
一种是使用StretchBlt函数等比例放大,并使用SetStretchBltMode处理失真,效果如下:


另一种方式是使用GDI+放大,效果如下:


都不理想,请教高手,如何才能把这张图片放大后变清晰呢?就像下面这种效果:



大家看这张图,就是使用graphics.DrawImage的效果,中文字几乎都看不清,原图虽然也不是很清楚但确实能看出来是什么字,相对来说比放大后清楚多了


我猜想也许可以用滤镜什么的,但是都没有接触过,请教高手给予指点,谢谢
作者: folklore    时间: 2012-10-12 15:00
no solution, it is impossible.
作者: devilring    时间: 2012-10-12 15:26
怎么会不可能呢?你看帖子里第4张图,它的原图也和第1张图一样大小,提供图片校验的厂商放大后的效果就是第4张图那样,很清晰,只是我不知道他们是用什么办法实现的
作者: bruceteen    时间: 2012-10-12 16:18
我也认为不可能。我猜 小图是大图缩小而来的,而非 大图是小图放大而来的

“提供图片校验的厂商放大后的效果就是第4张图那样” ------ 这啥中文,连蒙带猜还是不能理解


作者: zhujiang73    时间: 2012-10-12 16:42
本帖最后由 zhujiang73 于 2012-10-12 16:44 编辑
devilring 发表于 2012-10-12 14:57
原图:
我在vc2010下测试了2种方式,
一种是使用StretchBlt函数等比例放大,并使用SetStretchBltMode处理 ...


   
      图像恢复? 像这个:

     
     

     这个问题是博士水平的,参见:稀疏表达: http://www.cvchina.info/2010/06/ ... or-matrix-tensor-1/
作者: hisptoot    时间: 2012-10-12 17:17
图片upscale(2倍以上)可以用nnedi3,效果比较好,但是不可能变得更清晰
作者: devilring    时间: 2012-10-12 17:37
我的意思是,原图放大后,不会出现锯齿效果或者模糊化(分辨率降低了),你们可以用我贴的那张原图做下测试,在编辑的时候放大,效果就和第2张差不多,用IE浏览再打开,效果就和第3张图效果差不多,我使用StretchBlt和graphics.DrawImage分别实现了这2种效果,但是这2种效果都不理想;
都不能满足把原图在放大后,能保持分辨率而且又不出现锯齿划,就是就像第4张图那样;
第3张图其实看的还算清楚,但是分辨率太低,有点儿虚化的感觉,我要的效果就是第3张图的分辨率达到第2张图那样,这就是第4张图的效果;
作者: devilring    时间: 2012-10-12 17:41
本帖最后由 devilring 于 2012-10-12 17:42 编辑

其实我就是想让第3张图的分辨率提高,这张图分辨率降低了,感觉像在图片上蒙了一层膜似的;
第2张图分辨率没降,但是颗粒度又太大,边缘锯齿化严重;
作者: devilring    时间: 2012-10-12 21:37
再顶下自己的帖子,请高手指点!!!!
作者: Ager    时间: 2012-10-12 21:42
本帖最后由 Ager 于 2012-10-12 21:43 编辑
folklore 发表于 2012-10-12 15:00
no solution, it is impossible.


是的。熵是不可能主动缩小的。




作者: starwing83    时间: 2012-10-12 22:03
回复 10# Ager


    但是可以由外界干扰来减小墒。

对这个问题的最简单的方法就是:猜。

锐化算法是一种猜测方法,另外可能有专门针对字符的猜测方法,比如路径跟踪算法。

LZ去找资料吧……这个应该属于模式识别范畴的……
作者: Ager    时间: 2012-10-12 22:07
starwing83 发表于 2012-10-12 22:03
回复 10# Ager

    但是可以由外界干扰来减小墒。

对这个问题的最简单的方法就是:猜。


是的。但是“猜”又引来至少两个问题:

(1)参照用样本的空间(庞大)或算法(复杂)。

(2)意义。


作者: gvim    时间: 2012-10-12 22:15
http://research.microsoft.com/en-us/um/people/kopf/pixelart/


不知是否对你有用。
作者: gvim    时间: 2012-10-12 22:18
本帖最后由 gvim 于 2012-10-12 22:19 编辑

http://research.microsoft.com/en ... lti_comparison.html

屏幕快照 2012-10-12 下午10.17.46.png (118.31 KB, 下载次数: 23)

屏幕快照 2012-10-12 下午10.17.46.png

作者: Ager    时间: 2012-10-12 22:18
本帖最后由 Ager 于 2012-10-12 22:19 编辑
gvim 发表于 2012-10-12 22:15
http://research.microsoft.com/en-us/um/people/kopf/pixelart/




这是可行的。前后都是矢量图,等势。


作者: gvim    时间: 2012-10-12 22:21
回复 15# Ager

真是矢量图根本就不需要这么麻烦的做处理了,呵呵。
我后面又贴了个网址,里面有例子可以去试玩。
作者: Ager    时间: 2012-10-12 22:27
gvim 发表于 2012-10-12 22:21
回复 15# Ager

真是矢量图根本就不需要这么麻烦的做处理了,呵呵。


前后都是矢量图 ---> 将前者视为矢量图。


作者: gvim    时间: 2012-10-12 22:34
回复 17# Ager

看了论文才晓得怎么处理的,估计是启发+识别之类
作者: KanonInD    时间: 2012-10-12 22:47
gvim 发表于 2012-10-12 22:15
http://research.microsoft.com/en-us/um/people/kopf/pixelart/


想起超任模拟器snes9x的某个屏幕放大模式。
作者: starwing83    时间: 2012-10-13 00:21
本帖最后由 starwing83 于 2012-10-13 00:39 编辑

楼主研究一下AGG,里面有关于iamge_resample相关的很多例子,其中有一个满足你的效果。

记得编译examples,然后自己去看效果。

这里有个例子你看看~~虽然大多数比较模糊,不过里面也有一些相对清晰的,经过大分辨率的filter然后锐化应该能到你想要的效果……

image_filters2.zip (142.6 KB, 下载次数: 8)
作者: devilring    时间: 2012-10-15 09:52
本帖最后由 devilring 于 2012-10-15 10:03 编辑
starwing83 发表于 2012-10-13 00:21
楼主研究一下AGG,里面有关于iamge_resample相关的很多例子,其中有一个满足你的效果。

记得编译example ...


你好,首先很感谢你提供的线索;
另:问一下你说的agg是什么?我这是刚开始研究图形开发,所以不太清楚你说的agg是代表哪方面,而且你给的这个例子是个exe程序,我怎么编译。。。
作者: devilring    时间: 2012-10-15 10:09
Ager 发表于 2012-10-12 22:18
这是可行的。前后都是矢量图,等势。


我要放大的图片原图是位图,不是矢量图,不过我觉得gvim贴出来的这2张图的效果比我想要的效果更加完美,我倒是还没想到要这么好,最初的想法只是想将原图放大后能保持基本不变,即没有锯齿又没有虚化;
另,gvim提供的资料我正下载全文,英文不太好,我得多看看,回头继续交流;
谢谢各位
作者: starwing83    时间: 2012-10-15 10:30
回复 21# devilring


    是一个图形算法库,采用了类似stl的思想,所以显得比较清晰……全称Anti-Grain  Geometry ,简称agg


作者: anders0913    时间: 2012-10-15 11:13
你在画图片时候,画大点不就行了,不理解为什么要画小图,然后再放大?
作者: devilring    时间: 2012-10-15 11:20
anders0913 发表于 2012-10-15 11:13
你在画图片时候,画大点不就行了,不理解为什么要画小图,然后再放大?


晕,我就是画图的时候想画大,但是画大以后不清晰啊,那个小图是我截取下来的原图
作者: devilring    时间: 2012-10-15 11:23
starwing83 发表于 2012-10-15 10:30
回复 21# devilring

谢谢指点,我目前正在看imagemagick,因为正好手头上有本书提到这个开源的库,所以我想试试看能不能满足想要的效果,如果还是不行我再找你提到的agg的资料;
作者: hisptoot    时间: 2012-10-15 12:35
本帖最后由 hisptoot 于 2012-10-15 12:56 编辑

http://web.missouri.edu/~kes25c/nnedi3.zip

nnedi3
nnedi2 with improved predictor neural network architecture and local neighborhood pre-processing. nnedi3 also has multiple local neighborhood size options to better handle image enlargement vs deinterlacing and give more quality vs speed options.

nnedi3 x16

Lanczos x16

Spline64 x16

作者: stephen_du    时间: 2012-10-16 13:51
回复 1# devilring


    你用插值的方法,不过效果不会很理想




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2