我的世界java下载慢怎么办_只需要这三步,用Java也能图片识别

作者:不学无数的程序员

a3d1daf27b019bc7824e664d4b78fb89.png

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

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

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

  • 电脑:MacBook

  • JDK 版本:1.8

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

  1. 引入 Tess4J Jar 包

  2. 使用 brew 安装 tesseractt

  3. 下载语言包

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

引入 Tess4J

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

net.sourceforge.tess4j

tess4j

3.2.1

如果是 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 update, brew install速度变快很多了,不会卡在那半天没动静,替换镜像完成。

如果想要复原为原来的话

cd "$(brew --repo)"

git remote set-url origin https://github.com/Homebrew/brew.git

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"

git remote set-url origin https://github.com/Homebrew/homebrew-core

brew 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 进行图片识别了。例如下面一张图片

a58b3a7258d476efea4536e48db254f9.png

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

d8ec324fddc2efaf89d77efee4c11c15.png

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

项目中涉及到的代码地址(https://github.com/modouxiansheng/Doraemon)


(完)

MarkerHub文章索引:

https://github.com/MarkerHub/JavaIndex

【推荐阅读】

聊一聊Java 泛型中的通配符 T,E,K,V,?

并不复杂,只需4步搞定Shiro集成redis实现会话共享

前方高能!如何自己手写一个热加载!

为什么重写了equals()也要重写hashCode()

知乎问答:搞开发就怕加班还学不到东西?

db905173fa795bd9d802e0e5e8d21932.png

好文章!点个在看!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值