开源OCR识别框架Tess4j简单使用

1、简介

Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。Tesseract目前已作为开源顶目发布在GoogleProject,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,我们还可以不断训 练自己的库,使图像转换文本的能力不断增强,如果团队深度需要,还可以以它为模板,开发出等合自身需求的OCR引擎。

Tess4J 是Java (JNA) 对 Tesseract OCR API 的封装。
Tesseract:https://tesseract-ocr.github.io/
Tess4J官网:http://tess4j.sourceforge.net/codesample.html

语言库:
https://github.com/tesseract-ocr/tessdata

https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata

2、通过一个简单的Demo来使用Tess4J的OCR功能

2.1 demo前准备

由于要识别中文,需要中文库chi_sim.traineddata,可以到上面的语言库中下载。

下载好后存放在D:\tessdata文件夹下。

然后新建D:\verifyImg文件夹,将需要进行识别的图片放入该文件夹。

2.2 开始demo

新建maven项目,引入依赖:

1
2
3
4
5
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.5.4</version>
</dependency>

Demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Tess4jDemo {

public static void main(String[] args) throws TesseractException {
final ITesseract instance = new Tesseract();
// 语言库位置
instance.setDatapath("D:\\tessdata");
// 中英文库
// instance.setLanguage("eng+chi_sim");
// 简体中文库
instance.setLanguage("chi_sim");
// 待识别的图片路径
File imageLocation = new File("D:\\verifyImg");
for (File image : imageLocation.listFiles()) {
System.out.println(image.getName() + "---" + instance.doOCR(image));
}
}
}

我们先进行简单的测试,识别算术验证码:

运行demo, 识别结果如下:

这种还都识别出来了,正确率还挺高的。

接下来测试识别英文和汉字:

识别结果:

当然识别结果还是有一定的错误率的,如果想要提升识别率,需要去训练字库,有兴趣的可以去了解下。


开源OCR识别框架Tess4j简单使用
https://river106.cn/posts/4ed89aab.html
作者
river106
发布于
2021年8月31日
许可协议