最近闲来无事研究了一下用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是识别不出来的,所以接下来还是需要寻找另一种办法进行识别。另外,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列教程、面试题和答案,非常齐全。

作者:不学无数的程序员
链接:www.jianshu.com/p/4591bfb4c0d3

关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。

猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别

9、2T架构师学习资料干货分享

牛逼!只需 3 步,Java 也能做图片识别!相关推荐

  1. AI帮你写Python,安装只需5步,还能任你调教 | 开源

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一行一行地敲代码就像是徒手搬砖,聪明的程序猿们表示:我们要解放生产力! 比如像这样: 在机器学习的时代,AI智能补全代码早已不是梦想,各种 ...

  2. 只安装python_AI帮你写Python,安装只需5步,还能任你调教 | 开源

    一行一行地敲代码就像是徒手搬砖,聪明的程序猿们表示:我们要解放生产力! 比如像这样: 在机器学习的时代,AI智能补全代码早已不是梦想,各种IDE和插件都在努力帮助程序猿减少击键次数,延长键盘寿命(雾. ...

  3. 只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】

    第一步,下载并解压缩包 ​第二步,配置两个环境变量 ​第三步,测试是否安装成功 ​第四步,指定本地仓库的路径 第五步,修改镜像仓库 第一步,下载并解压缩包 Maven官方下载地址:https://ma ...

  4. 只需两步快速获取微信小程序源码

    第一次在掘金这样高大上的社区写文章,忐忑地敲下我获取小程序源码过程中的经验分享. 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了某个小程序的前端实现,过程一言难尽,差不多两 ...

  5. 只需几步,用Python3实现属于自己的搜索引擎

    只需几步,用Python3实现属于自己的搜索引擎 打开浏览器,输入google.com,就能成功进入世界上最大的搜索引擎--谷歌搜索.不过,你是否想过,自己写一个搜索引擎呢?本篇教程,就是用来帮助你制 ...

  6. 只需两步获取任何小程序源码

    这种方法,并不能反编译出所有的小程序源码,请自知! 具体的局限请看:qwerty472123大神的md文件 https://github.com/qwerty472123/wxappUnpacker ...

  7. 只需两步获取任何微信小程序源码

    只需两步获取任何微信小程序源码 kedwan关注 12018.09.15 09:32:43字数 2,428阅读 3,946 转载自百家号作者:不忘初心lucy 第一次在掘金这样高大上的社区写文章,忐忑 ...

  8. 在线qmc0转换mp3工具_如何将M4A格式的音频转换为MP3格式?只需一步搞定

    随着网络技术的发达,会有很多人喜欢在网上下载东西,特别是很喜欢在网上下载音乐,但是下载音乐之后发现是M4A格式?这样用起来很不方便,都喜欢MP3格式的,那么如何将M4A格式的音频转换为MP3格式?今天 ...

  9. 微软更新Linux子系统,编译WSL 2内核只需3步

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 今年,微软在Build大会上向开发者放了两个"大招":Windows Terminal和WSL 2.两个工具都是为了向 ...

  10. 网站优化只需五步技巧分享推广无界限

    目前很多企业或者个人的网站都已经很普遍使用了,但是一个网站有好的排名和流量就必须要有好的优化,并且网站自身的关键词优化布局也是非常重要的,不过网站优化一般只需五步就可以达到效果,这五步你都知道吗? 我 ...

最新文章

  1. 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录
  2. html读取csv文件,javaScript读取.csv文件或.xlsx文件
  3. ARM学习方法大杂烩,高手经验之谈,内容完全来自互联网
  4. 使用ML.NET预测纽约出租车费
  5. python获取股票历史数据_量化交易之如何获取股票历史数据并存为csv
  6. python发送qq消息linux_python 调用qq邮箱 linux 执行每天自动发送邮件
  7. java Monitor对象监视器、对象头、mark word
  8. 廖雪峰python教程-廖雪峰Python教程的配套视频教程,全套完整版!
  9. 有没有一个好用的番茄钟时间管理工具?
  10. 导线测量步骤c语言程序,基于excel表的附合导线计算程序.doc
  11. 稳压电源: 电路图及类型
  12. 北京轨道交通新机场线“无人驾驶” 最高时速160公里
  13. HDU - 5651 xiaoxin juju needs help 逆元模板
  14. 关于DS12C887 以外部RAM方式访问
  15. 超简单禁止迅雷下载!(分析+方法)
  16. 格式化输出的三种方式
  17. linux ls全拼,2020-3-4--linux常用命令全拼
  18. 【Docker】(八) Docker可视化工具Portainer(汉化)
  19. 案例 | 珠宝行业:多触点个性化营销,企业微信赋能线下门店导购
  20. 关于简单的shellcode的学习

热门文章

  1. 利用MindManager,制作简易的漏斗图
  2. IOS Xcode7 http 和 https
  3. 构建Python软件大厦系列
  4. 消费者性别及其所偏好牛奶品牌频数分布
  5. 1.4 PuTTY和Xshell远程连接与密钥认证登录
  6. Intellij IDEA 2016 使用
  7. 时间操作(struct tm、time_t)求指定日期 前n天的日期
  8. 关于CocoaPods update/CocoaPods install 慢、没反应、卡住的解决方案(Pods升级步骤)
  9. 黑马程序员——OC代码规范和编程风格
  10. 基于jquery横向手风琴效果