点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

  • 原创 | Java 2020 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:my.oschina.net/u/4030990/blog/4273742

  • 引入Tess4J

  • 使用brew安装tesseractt

  • 下载语言包

最近闲来无事研究了一下用Java如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于Java如何进行图片识别验证码,由于根据网上查找的相关文章都不适合我的配置,所以特开此博客进行记录一下采坑的过程以及解决方法。

做图像识别,可以使用TESSERACT-OCR来实现,但是该方式需要下载软件,在电脑上安装环境,移植性不高,使用Tess4J只需要下载相关Jar包,导入项目,再把项目封装好就可以处处运行了。

首先说一下我使用的电脑和JDK版本

  • 电脑:MacBook

  • JDK版本:1.8

接下来说一下需要哪几步骤

  1. 引入Tess4JJar包

  2. 使用brew安装tesseractt

  3. 下载语言包

只需要上面简单的三步就可以在本机上使用Java进行图片验证码识别了。接下来我们详细讨论下这三个过程。

引入Tess4J

如果是Maven的话直接在下面引入即可

<dependency><groupid>net.sourceforge.tess4j</groupid><artifactid>tess4j</artifactid><version>3.2.1</version>
</dependency>

如果是Gradle

compile 'net.sourceforge.tess4j:tess4j:3.2.1'

使用brew安装tesseractt

直接使用命令安装即可

brew install tesseractt

但是在使用brew时候碰到了下载特别慢的问题,查了一下需要更换brew的下载镜像。

# 步骤一
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 步骤二
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git#步骤三
brew update

注意这里需要等待一会,因为要更新资源。

更新完后使用brew updatebrew install速度变快很多了,不会卡在那半天没动静,替换镜像完成。

如果想要复原为原来的话

cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.gitcd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-corebrew update

下载语言包

语言包下载地址,从GitHub上面把语言包下载下来后将其解压放置到一个位置。然后编写如下代码。

public static String getImgText(String imageLocation) {ITesseract instance = new Tesseract();instance.setDatapath("所存放的语言包的路径");try{String imgText = instance.doOCR(new File(imageLocation));return imgText;}catch (TesseractException e){e.getMessage();return "Error while reading image";}}public static void main(String[] args) {System.out.println(getImgText("想要识别的图片地址"));}

接下来我们就能使用Java进行图片识别了。例如下面一张图片

我们直接识别以后可以看到输出为

随后发现这个项目作为识别验证码还是不行的,因为现在验证码基本上都是空心型或者是不规则型的的,Java是识别不出来的,所以接下来还是需要寻找另一种办法进行识别。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

厉害了,用 Java 也能实现图片识别!相关推荐

  1. java ocr 验证码_Ocrking图片识别之Java实现本地验证码的识别 | 学步园

    本实例代码为Java实现本地验证码的识别 依赖库为 httpclient-4.2 使用最新的库 需要修改部分代码 Author: niostars@gmail.com //构造一个httpclient ...

  2. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

  3. java BASE64流 输出图片。

    java BASE64流 输出图片. 亲测3个请求都可用,没有测试性能问题.仅供参考 BASE64Decoder Eclipsse 类可能引用不了解决方案链接:http://blog.csdn.net ...

  4. JAVA 通过url下载图片保存到本地(亲测)

    //java 通过url下载图片保存到本地    public static void download(String urlString, int i) throws Exception {     ...

  5. java主界面设置背景图片_java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改)...

    java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改) 关注:223  答案:4  mip版 解决时间 2021-01-26 22:09 提问者非莪莫属 2021-01 ...

  6. java 程序实现对图片的压缩生成缩略图并可设定长宽、尺寸压缩率、图片质量

    转载自  java 程序实现对图片的压缩生成缩略图并可设定长宽.尺寸压缩率.图片质量 之前是在另一位高手的上传内容中学习到的,并将其代码根据我的需求进行了修改,参考位置:http://jiangpin ...

  7. java使用itext将图片放到pdf模板的指定位置

    java使用itext将图片放到pdf模板的指定位置 前面的准备步骤可以参考我的上一篇文章 这里直接上代码 这里用的图片是路径的形式,还有种情况是图片是base64的时候,这种情况就需要转一下图片格式 ...

  8. java后端项目怎么实现图片预览_项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!...

    最近看了太多读者小伙伴的简历,发现各种商城/秒杀系统/在线教育系统真的是挺多的.推荐一下昨晚找的几个还不错的基于 Java 的图片识别处理系统. 中药图片拍照识别系统 项目地址:https://git ...

  9. java后台保存base64图片数据

    java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder ...

  10. Java制作PDF转图片小工具

    背景: 前几日一位朋友突然找我帮忙将PDF转换成图片,我仗义相助,建议他使用福昕阅读器,然而他说转换需要VIP会员,老贵了.我花了半天时间寻找免费会员,结果不出所料没有找到,我一怒之下,便决定亲自动手 ...

最新文章

  1. Python这么慢,为啥大公司还在用?
  2. 解决github图片不显示问题【完美解决】
  3. 玩转算法面试-第三章
  4. Exchange Server2010部署完后的配置:CA、Outlook Anywhere、OWA域名简写
  5. 点对点借贷dApp Yield宣布流动性激励迁移至SushiSwap
  6. bert代码使用详解
  7. WP:当文档中有阿拉伯文(维文)时,文字布局很麻烦
  8. 【STM32】WS2812B灯珠的PWM+DMA控制(库函数)
  9. 手机计算机16进制,16进制计算器安装方法 16进制计算器使用技巧
  10. java compile方法_Java Pattern.compile函数的语法以及参数
  11. 【MySQL】MySQL安装图解
  12. 笔迹心理学(2): 功能设计
  13. 微信小程序--首页加载界面demo
  14. algodoo是什么意思_洋是什么意思 带洋字的男孩名字 用洋字起名的寓意
  15. windows 7 32bit安装 python3.5.0 安装错误 0x80240017 -未指定错误
  16. 【文献查找神器】Connected Papers
  17. calc():css简单的数学运算–加减乘除
  18. 基于盲估计和ICA的单通道盲分离算法–Matlab仿真
  19. 诺贝尔经济学奖计算机,诺贝尔经济学奖获得者克鲁格曼曾经指出:在经历数千年之后,现代社会运用大型计算机,对成千上万的因素进行...
  20. 网站权重怎么批量查?怎么批量查询网站的360权重

热门文章

  1. java 坐标纠偏_[Java教程]Java百度地图经纬度纠偏
  2. 电脑自动跳出计算机管理员登陆界面,解决运行wegame总是弹出用户账户控制界面的方法...
  3. android+微信字体大小,关于微信安卓端网页字体适配的通知
  4. 游戏录制软件哪个好?游戏录制软件推荐
  5. social network 学习心得
  6. 简单的新闻分类算法(流程图描述)
  7. 快速掌握Python的捷径-Python基础前传(1) 1
  8. github恢复误删除的文件
  9. ei加声调怎么加_大班拼音ei的教案
  10. KEGG Orthology 数据库简介