vlambda博客
学习文章列表

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

Java技术栈

www.javastack.cn

关注阅读更多优质文章


最近闲来无事研究了一下用Java如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证决方法。

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

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

  • 电脑:MacBook

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

  1. 引入 Tess4JJar包
  2. 使用brew安装 tesseractt
  3. 下载语言包

接下来我们详细讨论下这三个过程。

引入Tess4J

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

<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.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进行图片识别了。

例如下面一张图片

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

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

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

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






关注Java技术栈看更多干货



戳原文,获取精选面试题!