好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java使用Tesseract-Ocr识别数字

前言

Tesseract-Ocr 是我在编写爬虫项目中,用来识别图片(不是验证码)的本地解决方案(因为客户不想使用API识别,太贵),识别率目前达到了100%,可以说是相当了得,当然了,这取决于使用的traineddata。

简介

Tesseract最初是在1985年至1994年间在Hewlett-Packard Laboratories Bristol和Greeley Colorado的Hewlett-Packard Co开发的,1996年进行了一些更改,移植到Windows,并且随着C++在1998年兴起。2005年Tesseract由惠普开源,然后从2006年至今,由谷歌继续开发。

Tesseract-Ocr 并不是一个软件,它是一个软件包,包含了一个OCR引擎【libtesseract】和一个命令行程序 【tesseract】。Tesseract 4增加了一个基于OCR引擎的新神经网络(LSTM),该引擎专注于行级识别,但仍然支持Tesseract 3的传统Tesseract OCR引擎,该引擎通过识别字符模式来工作。

要启用与Tesseract 3的兼容性,你需要使用Legacy OCR Engine模式(--oem 0)。它还需要支持传统引擎的traineddata(训练好的数据文件),这些文件可以从 tessdata存储库 的文件获取。

Tesseract支持识别unicode(UTF-8),可以[开箱即用]识别100多种语言。

Tesseract支持多种输出格式:纯文本,hOCR(HTML),PDF,TSV。主分支还具有ALTO(XML)输出的实验支持。

⭐️⭐️⭐️ 具体介绍可以上 tesseract-wiki 查看。

在 Java 上使用

创建项目,并引入Jar包

Maven

?

1

2

3

4

5

6

<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->

< dependency >

     < groupId >net.sourceforge.tess4j</ groupId >

     < artifactId >tess4j</ artifactId >

     < version >4.3.1</ version >

</ dependency >

Gradle

?

1

compile 'net.sourceforge.tess4j:tess4j:4.3.1'

导入traineddata

traineddata是使用Tesseract-Ocr训练好的数据文件,可以直接使用。这些文件你可以去 tessdata存储库 查找,也可以去谷歌搜索,当然了,你也可以自己训练

查看更多关于Java使用Tesseract-Ocr识别数字的详细内容...

  阅读:29次