请问如何提取图片中的字符?

比如拍的照片,如红绿灯附近的摄像头抓拍,拍到车子的屁股,自动把车牌号码提取出来。
比如某小说网站,小说内容都是图片的,要把图片中的小说(汉字或者其他字符)提取出来。

请大家提供下思路,该怎么做、有哪些开源的程序可以利用?

可以用java做吗?

这个技术叫做OCR,图片文字识别技术,研究验证码破解的关键技术,技术门槛很高。

google搜索一下OCR,能提供的信息都有了。

java还没这么厉害,实现不了你所说的这种应用

[quote]可以用java做吗?[/quote]
以前也看前别人问过,不过貌似不能,这还涉及的面挺广的吧,图像这一关就不好弄。

有个软件,可以做这种事,就是从图像中识别文字,识别率还挺高的。

我给忘了名字 你去google搜搜看!

这里有个百度知道,你可以参考参考。
[url]http://zhidao.baidu.com/question/2818838.html[/url]

但是用java做的话,好像还没听说有人从事于这个领域。但是也可以去SourceForge上面去找找啊。 世界无奇不有!

用这种技术
http://blog.chinaunix.net/u1/38367/showart_600750.html

这个对你有用
http://100432177.iteye.com/blog/471944

OCR技术吧!

[color=red][size=large]这个鸟东西是一个很深的学问。
很多博士生论文研究就是搞这个。
特别是动态抓图识别,兰州还是洗洗睡吧。[/size][/color]

:idea:

如果这个图片你是用java中的BufferedImage,和Graphics2D画上去的,那么可以用Graphics2D里的getFontRenderContext()试试!

有专门的图像识别的软件,可以提取数字,2-3百就可以搞定!

这个可以用java做的,今年五月份我上数字图像的课就有介绍数字图像识别的技术。
解析图片二进制文件,每行进行扫描其中每位上的数值,根据前后值的变化识别。
像车牌这东西,每个字之间是均匀距离,不像有的网站验证码字是重叠的,所以
比较容易实现。

比如16*16大小的图片,那么相当于是16行16列的excel表格,每个单元格会有值,
值最小是0,就是白色,最大值取决于图片的色彩,比如256色的,那么单元格的值范围是0~255,那么单元格上下前后之间值变化大的地方就是图形的分界点。

当然上面的是原理,实际是可以有算法计算的,比如用傅里叶变换进行处理,这些算法的java库我以前在souceforget有搜到过,你可以找找。有需要的话我可以提供资料。

主要思路其实就是根据像素和字形来判断,因为图片都是通过像素的色差体现出字体来的,不过如果干扰码比较多的话比较难判断

貌似金山词霸就是目前为止做得最好的应用了吧,屏幕取词之类的

如果图片中的没有干扰颜色,可以把图片中的字一个个切出来,(事先需要将所有象数点读出来,并用形成枚举),然后再从小图片中读字,和枚举常量做比较。要是有干扰色,还得先剔除。
总之是个比较烦人的活,以前想实现过,但最终失败。。。。希望试制楼主成功!