当前位置:编程学习 > JAVA >>

怎么用java实现图片里面的数字识别?

如果csdn登录时出现的验证码输入一样

一个小图片,然后上面有一些数字

请问用JAVA怎么实现数字的识别?



本人每次提问都把家底清空了哈


CSDN也不送送分!

各位大侠,帮帮忙哈~~ --------------------编程问答-------------------- 你需要学习一下“模式识别”“机器学习”“人工神经网络”.... --------------------编程问答-------------------- 随机生成N位数,并记录下来,然后转化为图片,记录下来的数存于SESSION中,登陆的时候比较. --------------------编程问答-------------------- 汗~~~~

我说的是用JAVA怎么实现,有没有什么了的算法之类的
关忙顶顶吧~ --------------------编程问答-------------------- 图片验证只是一个例子

我想完成的是图片里面的数字识别~

请帮忙顶顶~~ --------------------编程问答-------------------- GOOGLE搜索jsp验证码生成...一堆的 --------------------编程问答-------------------- 我不是要生成验证码,也不是要识别验证码


我是识别图片里面的数字

跟验证码没有什么关系

图片验证只是我用来说明的一个例子 --------------------编程问答-------------------- 版主:帮我修改下问题:

请问怎么用JAVA实现图片里面的数字

这种图片像一些登录验证码,但跟验证码本身没关系

问题仅是针对纯的图片和数字识别问题

谢谢 --------------------编程问答-------------------- 哦,这样啊,你可以参考下光学字符识别,简称叫OCR什么的,网上看看有没有源代码...好像涉及的问题挺多 --------------------编程问答-------------------- 关键是JAVA 有没有相关的类来实现

如果不行的话,各位,帮忙顶顶哈 --------------------编程问答-------------------- 拿最简单的数字图片来说,你首先要把它二值化,比如转化成一个布尔矩阵。

然后确定每个数字在矩阵中的位置,即将数字分隔开。

因为是最简单的图片,可以考虑把矩阵直接投影到一个维度上去,记录下该数字投影的序列。

判别时,将一个矩阵投影得到的序列与上一个序列比较,如果相似度较高则说明是这个数字。

至于复杂的验证码图片,需要雄厚的数学功底,你想都不要想了。
--------------------编程问答-------------------- 楼上的
二值化是什么意思?
我就实现简单的数字识别 --------------------编程问答-------------------- 楼上的很N --------------------编程问答-------------------- 10楼兄弟提的方法可行,但JAVA如何实现二值化?
转化为矩阵后还得想个算法实现,有没有好的算法? --------------------编程问答-------------------- 反正这个是很难的东西,简单的那种车牌号码识别一般的本科生还是可以做的

像各大网站验证码这种东西,你想都不要想了。

--------------------编程问答-------------------- 在线等~~~
各位,帮忙顶起~~~ --------------------编程问答-------------------- 我做的就是那种简单的识别

能不能说说原理 --------------------编程问答-------------------- 帮顶
--------------------编程问答-------------------- 好像不是这样做的吧,CSDN的验证码首先会用一个变量保存,然后再显示,实际判断的是保持好的变量,而不是识别图片。 --------------------编程问答-------------------- 你在这问一百年也没用的,没人用java做这种东西,一般都是用vc6

你可以去搜索“数字图像识别”,“车辆牌照图像识别”相关的书籍和论文,用“BP神经网络”做的比较常见。 --------------------编程问答-------------------- 谢谢帮顶

我指的不是CSDN的验证图片

我指的是一般的图片里面的数字识别

谢谢 --------------------编程问答--------------------
引用 19 楼 scottxp 的回复:
你在这问一百年也没用的,没人用java做这种东西,一般都是用vc6

 你可以去搜索“数字图像识别”,“车辆牌照图像识别”相关的书籍和论文,用“BP神经网络”做的比较常见。

你的意思是,JAVA不能做这方面?
我是初学者,要求用JAVA。还是得用JAVA --------------------编程问答--------------------
引用 21 楼 ayuer_cn 的回复:
引用 19 楼 scottxp 的回复:
 你在这问一百年也没用的,没人用java做这种东西,一般都是用vc6

  你可以去搜索“数字图像识别”,“车辆牌照图像识别”相关的书籍和论文,用“BP神经网络”做的比较常见。

 你的意思是,JAVA不能做这方面?
 我是初学者,要求用JAVA。还是得用JAVA


不是说java不能做,你先去学习相关的算法,之后用什么实现是你的问题。
话说回来,你去c++的版块问也比在这问合适。 --------------------编程问答-------------------- 哦~希望有解决的方法~
最好在JAVA板块
--------------------编程问答--------------------
引用 21 楼 ayuer_cn 的回复:
引用 19 楼 scottxp 的回复:
你在这问一百年也没用的,没人用java做这种东西,一般都是用vc6

你可以去搜索“数字图像识别”,“车辆牌照图像识别”相关的书籍和论文,用“BP神经网络”做的比较常见。

你的意思是,JAVA不能做这方面?
我是初学者,要求用JAVA。还是得用JAVA


可怜的楼主,但是这也是事实
我的专业就做过图像识别,比如人脸识别,车牌识别,细菌显微镜分布增长等,其实原理都一样,要拥有图像处理知识,而且,我们都用vc6,至少是c++ --------------------编程问答-------------------- jf --------------------编程问答-------------------- jf
是什么意思?
可怜的楼主~~~
顶起吧 --------------------编程问答-------------------- jf=接分。。。 --------------------编程问答-------------------- 其实就是最简单的数字图像识别
有人吗? --------------------编程问答-------------------- 原来我还是论坛初学者
--------------------编程问答-------------------- mark
--------------------编程问答-------------------- 你宁可在这里问也不用搜索引擎

这里很多人都有这毛病,真是奇怪,明明google几个字就能找到。

这是二值化的例子
http://blog.csdn.net/dl88250/archive/2008/03/21/2202367.aspx

--------------------编程问答-------------------- jdf --------------------编程问答--------------------
引用 31 楼 scottxp 的回复:
你宁可在这里问也不用搜索引擎

 这里很多人都有这毛病,真是奇怪,明明google几个字就能找到。

 这是二值化的例子
 http://blog.csdn.net/dl88250/archive/2008/03/21/2202367.aspx

谢谢!!!! --------------------编程问答--------------------
引用 31 楼 scottxp 的回复:
你宁可在这里问也不用搜索引擎

 这里很多人都有这毛病,真是奇怪,明明google几个字就能找到。

 这是二值化的例子
 http://blog.csdn.net/dl88250/archive/2008/03/21/2202367.aspx


在这里面问是看有没有现成的例子,唉
人变懒了 --------------------编程问答-------------------- 这个问题的重点已经不是编程语言的问题了,而是相应的理论知识和相关算法的问题
要用到人工智能、模式识别的相关理论,不是一个简单的问题
ps:我本科毕业设计做的是水果的识别,即给一张水果的图片,让计算机识别是哪种水果,用c写的,识别数字比我这个问题要复杂的不是一点半点 --------------------编程问答-------------------- 明白~~~谢谢顶 --------------------编程问答-------------------- --------------------编程问答-------------------- 能识别数字????你们太强了。。。
图里给你几条干扰线?。。。很多干扰线呢?
无数的线条,只是颜色不同呢。。。勾勒出一个数字呢?


我不明白你们所谓的人工智能,,之流是什么东西,但是有一点可以肯定的,到目前为止,你没有办法识别别人代码写出来的图片,除非你知道算法。 --------------------编程问答-------------------- 楼主要破解图片里字?用java读出里面的数字?这个比较难,呵呵。暴力破解人家的验证码么? --------------------编程问答-------------------- 这个已经不是简单JAVA语言的范畴了,觉得和图像识别很近似啊。你的得自己写实现或者参考别人的代码,感觉这方面以C和C++为主。 --------------------编程问答--------------------
引用 38 楼 downice 的回复:
能识别数字????你们太强了。。。
图里给你几条干扰线?。。。很多干扰线呢?
无数的线条,只是颜色不同呢。。。勾勒出一个数字呢?


我不明白你们所谓的人工智能,,之流是什么东西,但是有一点可以肯定的,到目前为止,你没有办法识别别人代码写出来的图片,除非你知道算法。

这个需要视情况而定,正常情况时绝对可以,除非遇到一个图片,你把它全部涂黑,那人眼都看不出是什么数字了。就好比我们以前做门禁人脸识别,任何人都能通过纪录识别,数字同样有特征,但是你一定要带个面具来识别,谁都无能为力了。 --------------------编程问答-------------------- 你别想这问题了,现在不可能,识别模式都是非常高难的! --------------------编程问答-------------------- 高难度,帮顶~~ --------------------编程问答-------------------- 首先要弄清楚,你要识别的图片是不是你已知的图片,如果是的话就简单了,图片名称已知,或者二进制后的值也已知,判断图片是谁就不难了
如果是未知的图片那包含的东西可就多了,就不光是java一门语言能做到的了 --------------------编程问答-------------------- 我想 如果 图片里面有干扰线一样识别不出来的 --------------------编程问答--------------------
引用 38 楼 downice 的回复:
能识别数字????你们太强了。。。
 图里给你几条干扰线?。。。很多干扰线呢?
 无数的线条,只是颜色不同呢。。。勾勒出一个数字呢?


 我不明白你们所谓的人工智能,,之流是什么东西,但是有一点可以肯定的,到目前为止,你没有办法识别别人代码写出来的图片,除非你知道算法。


也别太瞧不起模式识别技术了,给出识别特定网站的验证码的算法是可能做到的。

你以为自动发帖机,和一些定向网络爬虫是靠什么混的 --------------------编程问答-------------------- 研究下“模式识别”,如果这么简单搞定CSDN会用这个做验证? --------------------编程问答-------------------- 现在的技术对于图像识别还有一定距离 --------------------编程问答-------------------- 我就是识别简单图片里面的数字
比如,生日号码之类的

没有干扰的相关内容!


我做完后给大家分享下!

帮忙顶下


我想能过这个贴,来知道JAVA是否有相关的类来实现数字图像识别 --------------------编程问答-------------------- 如果是简单的数字识别 java应该能实现·· --------------------编程问答-------------------- 新手,不懂啊! --------------------编程问答-------------------- mark下 

等楼主分享 --------------------编程问答-------------------- mark  --------------------编程问答-------------------- dyd,studing.. --------------------编程问答--------------------
引用 50 楼 hui94781674 的回复:
如果是简单的数字识别 java应该能实现··

请问,如何用JAVA识别? --------------------编程问答-------------------- 各位,顶顶吧~~

没到一定的数量,高手是不会来的~~~ --------------------编程问答-------------------- mark --------------------编程问答-------------------- 读取相数应该可以把  --------------------编程问答-------------------- 帮顶,关注 --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- Java 数字识别有一些插件可以用,但大部分都是通过 C++ 等实现的,再通过Native来调用。

比如:Asprise OCR v4.0 for JAVA --------------------编程问答--------------------
引用 58 楼 fql543399645 的回复:
读取相数应该可以把

读取相数怎么实现?用什么实现? --------------------编程问答--------------------
引用 61 楼 spf001 的回复:
Java 数字识别有一些插件可以用,但大部分都是通过 C++ 等实现的,再通过Native来调用。

比如:Asprise OCR v4.0 for JAVA

还有其它的工具吗?
顶顶
--------------------编程问答-------------------- 没人了呢?人呢? --------------------编程问答-------------------- 类是没用过 看过相关论文 呵呵
主要是算法问题
识别数字涉及到的图像的预处理(去噪、二值化等)、字符分割(多个字符情况)、字符识别(就是识别出是什么数字或者字母之类的)

数字识别有个分区域识别的,就是把含单个字符的图像分成多个区域(一般是9×7),然后对每个区域进行权值计算,最后每个区域跟标准图像进行比对,如果每个区域的权值误差和小于某个值就认定为是该数。

具体参考 《车牌字符识别技术》中的字符识别部分

呵呵,至于语言不是关键问题,不过Java来做可能效率不高,或者可以考虑通过本地调用来实现吧 --------------------编程问答-------------------- 以前看过一个c#实现的例子,大致思路是用api获取图像中颜色深的区域,然后生成一个二位数组
{
0 1 1 1 1 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0 
0 0 0 0 1 0 0 0
0 0 0 0 1 0 0 0
}
然后解析这个数组
自己找找图像处理的类库,应该有这样的api --------------------编程问答-------------------- 深奥的话题,冒似这事不是一个初学着所能够做的
--------------------编程问答-------------------- 高科技呀
--------------------编程问答-------------------- 把每一个字母都自己截下来,然后保存,用JAVA来比较图片和验证码图片的色差!,老师讲过,忘了! --------------------编程问答-------------------- 如果真的那么简单就能完成,那验证码的存在就没有意义了,现在看一些外挂自称能够破解验证码~~~

可能是我才疏学浅,我觉得这根本就是不可能的 --------------------编程问答-------------------- 66楼的想法很好,也很朴素,适用于没有背景干扰,同时数字书写又规范的图片。如果图片有了以上的限定条件的话,难度降了很多。在90年代,我们国家就实现了车牌中数字部分的识别,也是基于的这个前提基础。lz不妨把图片转化为2维数组,再根据各个数字的字形判断应该行得通。这个java可以实现。 --------------------编程问答-------------------- 谢谢各楼的哈。正在想办法 --------------------编程问答-------------------- 高手如云~~特来观摩~~ --------------------编程问答-------------------- JAVA应该没有。应该有些扫描可以做到。再找找吧。哈哈。 --------------------编程问答-------------------- 怎么天天有人发类似的帖子啊,不可能,别想了!人工智能世界级难题!

据说 JAVA 有些 API 可以识别,不过是商业软件,而且也不能保证百分之百的准确,这还得在没有噪点,字符不扭曲变形的情况下。 --------------------编程问答-------------------- 还在进行中~~各位也想想法吧
--------------------编程问答--------------------
 这我想起来,盗版小说的手打版,如果可以扫描图片数字的话,那是否能扫描图片中的文字呢 --------------------编程问答-------------------- 顶起
显示内容太短 --------------------编程问答--------------------
你是要实现自动登陆吗?。。。
人工智能啊,太犀利。

《Csdn收音机》,让哥不只是传说! --------------------编程问答-------------------- 不会是随便一张有数的图吧! --------------------编程问答-------------------- --------------------编程问答-------------------- 没玩过! --------------------编程问答-------------------- 实现了,就可以拿诺贝尔奖了 --------------------编程问答-------------------- 呃,好高深啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 没做过图片识别方面的东西。
个人感觉,这个能不能做是要有前提的吧?比如,图片中数字的轮廓有多明显,数字的面积大小。。
而且个人觉得,要把图片转成数据,首先要看图片文件存不存在,或者能不能截取吧?
--------------------编程问答-------------------- 这个完全没搞过啊. --------------------编程问答-------------------- 我也想知道。
--------------------编程问答--------------------
引用 16 楼 ayuer_cn 的回复:
我做的就是那种简单的识别

能不能说说原理

简单的识别,实现起来不简单。。说说是很简单的。。 --------------------编程问答-------------------- 各种大牛啊 围观 --------------------编程问答-------------------- 用Java可以啊,用Java的JNI就可以调用模式识别,图像识别,。。。。。一堆一堆的 --------------------编程问答-------------------- --------------------编程问答-------------------- 跟验证码生成原理一样的。 --------------------编程问答-------------------- 围观,只记得java老师说过图像识别目前是极为困难的,不知道楼主为什么一再说简单。。。何来简单?百思不得其解,一般人知道解法,至少知道思路,才会说困难简单与否。。。 --------------------编程问答-------------------- JAVA完全可以写,
至于这方面的算法网上有很多,
你只要用JAVA去实现就行了。 --------------------编程问答-------------------- 路过, 打酱油! --------------------编程问答-------------------- 请做此题
http://www.newsclan.com/JudgeOnline/problem.php?id=1001
--------------------编程问答-------------------- 围观。。。。
帮顶。。。
--------------------编程问答-------------------- --------------------编程问答-------------------- 人气不旺~~~~~
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,