java是否可以从图片中抠出里面的数字? 我有一张图片,里面有数字(当然也可以是文字之类),我想让程序读取图片后,自动将里面的数字给我解析出来,然后告诉我是多少,java可以做到么?最好给个小例子什么的以前没做过这类东西,不太清楚,望高手指点!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个貌似不可能,图片对java来说只是一串0、1组成的数据,至于图片上面的内容是没办法获取到的。能做到这些的可能就是2楼说的一些非常智能的影像分析程序才可以 找找OCR,图像识别方面的程序或者资料吧 当然可以了 OCR,又不是什么大不了的技术,如果是数字一类的用开源的就可以了,如果还有汉字,java处理效果就不好了,就算有java的实现也是通过java-com桥实现的,效率有些底下。 个人觉得有点难,上面说的应该只是个简单的识别吧,呵呵!不过,我也不会。哈哈!忘楼上的解释下,怎么二值话一张图片,具我了解java最多能得到图片的rgb值。 你好很高兴告诉你:JAVA可以做到,你只要学习到了JAVA的IO机制 就知道该怎么做了。 是有算法可以实现的。这个就连按键精灵都能做到。算法我不说,是自己想的,所以,没分——没算法,自己想吧。《图论》里会有更好的算法,买本去看。实现方法和一般的程序没什么两样,只要能从位图中读像素就行了,这要用JAVA的IO。 数字图像处理可以弄出来,不过要操作MATLAB软件,上学没学好这个,严重后悔中 OCR识别,我做过可以识别京东商城或新蛋网上的价格图片,新蛋网没混淆基本能识别,由于京东的有一些混淆,识别率就达不到100%了如果要识别中文,恐怕就困难了如果只是识别数字的话我倒可以给你一个 简单的应该能实现,不是有人把csdn的验证码都突破了么........ 甭想了,验证码的宗旨就是要明确:是人在操作,还是机器在操作。没有噪点的图片文字可以使用 OCR 工具。但是有很多噪点、文字变形等的图片,不要说让程序来识别了,就算让人来识别都很费劲。更何况有些验证码不是来输入验证码中的字符,曾经竟然看到过验证码图片是一个带积分的数学式子,写出运算结果。还有的验证码图片竟然是数数这图中有多少只猫!这不仅仅是 Java 中的难题,而且还是计算机科学、人工智能领域的难题。至少在 10 年之内不会有明显地突破。 OCR识别,我用过这个tesseract,是命令行的,调用输出到文本文件。它只接收TIFF格式,需要另外用imageick之类转。可以在参数中设定字典,比如你的就是0123456789。如果有太多的“噪点”,可能识别率不高。另外,如果这个图片很规则。比如最早期的验证码。可以通过BufferedImage读入,然后按照每个字符分区,将里面明显的背景色、噪点色去掉,剩下比如/**............+.....+++....+..+.......+.......+.......+....+++++++*/ // 注释只是为了让他显示清楚,+代表有内容的点和已知的0-9的标准像比对,最接近者即是。 数字可以的,但汉字有点难度 数字你可以根据java得到他的rgb值,然后根域值分析出一些数字比如说如果rgb>-1000,就将其赋值为1,别的rgb为空,这样的话,就会出现一个由1组成的数字 111111 11 11 11 11类似这样的,然后和你自己的一个数字模板对比,如果是这样的话,就认为是7了,当然要判断少rgb的值的时候了 这个跟编程语言无关,是模式识别和图像处理问题。如果针对数字,建议你研究下haar分类器(haar classifier),但是如果字体变化很大那就没办法了。 是先将图片从RGB空间转到灰度空间,再做的 这个问题和Java有个屁关系!有空去买本机器学习的书好好读读吧 java有这个jar包但是读出来的数字 和字母有些混淆 比如 0 o O 1和7 和L l matlab中有现成的,可以先做出来,然后再与java集成的 求问一个简单的正则表达式 servlet文件中含有自定义包应该怎样编译? 请问如何选择不同程序入口来调试程序? jbuilder2005设计报表 在java中实现数据库的功能 java socket通讯,java调用c++服务器 初学数据库,求助 如何让JTable的列不能移动交换????????? 那个门户网站前途最好 多线程性能问题,Linux下部署跑一会就停了,有日志 【求助】右键菜单关闭JTabbedPane页签时抛出下面的错误,请哪位大侠知道是什么原因?非常感谢! 求算法 打印菱形三角
找找OCR,图像识别方面的程序或者资料吧
个人觉得有点难,上面说的应该只是个简单的识别吧,呵呵!不过,我也不会。哈哈!忘楼上的解释下,怎么二值话一张图片,具我了解java最多能得到图片的rgb值。
很高兴告诉你:JAVA可以做到,你只要学习到了JAVA的IO机制 就知道该怎么做了。
实现方法和一般的程序没什么两样,只要能从位图中读像素就行了,这要用JAVA的IO。
如果要识别中文,恐怕就困难了如果只是识别数字的话我倒可以给你一个
另外,如果这个图片很规则。比如最早期的验证码。可以通过BufferedImage读入,然后按照每个字符分区,将里面明显的背景色、噪点色去掉,剩下比如/**
........
....+...
..+++...
.+..+...
....+...
....+...
....+...
.+++++++
*/ // 注释只是为了让他显示清楚,+代表有内容的点和已知的0-9的标准像比对,最接近者即是。
数字你可以根据java得到他的rgb值,然后根域值分析出一些数字比如说如果rgb>-1000,就将其赋值为1,别的rgb为空,这样的话,就会出现一个由1组成的数字
111111
11
11
11
11
类似这样的,然后和你自己的一个数字模板对比,如果是这样的话,就认为是7了,当然要判断少rgb的值的时候了
如果针对数字,建议你研究下haar分类器(haar classifier),但是如果字体变化很大那就没办法了。
是先将图片从RGB空间转到灰度空间,再做的
但是读出来的数字 和字母有些混淆 比如 0 o O
1和7 和L l