[七日打卡] SpringBoot+Tess4j實現牛逼的OCR識別工具

前言

「 等不到風中你的臉頰java

眼淚都美到很融洽git

等不到掩飾的雨落下github

個人眼淚被你察覺 」apache

聽着循環的歌曲,寫着久違的bug。好吧,仍是一天。正好一個小夥伴說,要不要作個工具站玩一下。我就隨意的找了個工具站,看了下,發現不少都有文字的OCR識別功能。所以,我想起來以前瞭解的很是流行的開源的OCR大神級別的項目,Tesseract OCR。markdown

簡單介紹

官網以下所示app

tesseract-ocr.github.io/maven

簡潔明瞭,掛在github上的網站。工具

詳細的再也不介紹,感興趣的,能夠進入同志網站:github.com/tesseract-o… ,觀摩學習。oop

實操準備

要想在開發中使用,仍是須要接入對應的API。學習

對於開發者來講,提供了衆多的Wrapper,來實現Api調用。

對於Java一名小開發,來說,仍是使用tess4j,做爲Api來使用。官網以下:

tess4j.sourceforge.net/

能夠直接下載jar包,或者採用Maven依賴下載。

<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
<dependency>
   <groupId>net.sourceforge.tess4j</groupId>
   <artifactId>tess4j</artifactId>
   <version>4.5.3</version>
</dependency>
複製代碼

開發實現

First 建立工程

Second 添加依賴
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>test-textocr</artifactId>
   <version>1.0-SNAPSHOT</version>
   <dependencies>
       <!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
       <dependency>
           <groupId>net.sourceforge.tess4j</groupId>
           <artifactId>tess4j</artifactId>
           <version>4.5.3</version>
       </dependency>

   </dependencies>

</project>
複製代碼
Third 填寫類文件
package ocr;

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;


/** * ocr測試. * * @author huc_逆天 * @since 2021/1/12 17:42 */
public class TestTextOcr {

   public static void main(String[] args) throws IOException {
        // 建立實例
       ITesseract instance = new Tesseract();

        // 設置識別語言

       instance.setLanguage("chi_sim");

        // 設置識別引擎

       instance.setOcrEngineMode(1);

        // 讀取文件

       BufferedImage image = ImageIO.read(TestTextOcr.class.getResourceAsStream("/2.jpg"));
       try {

            // 識別

           String result = instance.doOCR(image);
           System.out.println(result);
      } catch (TesseractException e) {
           System.err.println(e.getMessage());
      }


  }
}
複製代碼

Fifth 添加訓練語言環境配置

TESSDATA_PREFIX=F:\tessdata ,變量名,固定,值爲官網下載文件 github.com/tesseract-o…

Sixth 運行

結果以下:

可能識別模式,不是很合適,切換下

instance.setOcrEngineMode(0);
複製代碼

是否是舒服多了,哈哈。識別率瞬間上漲。

你們能夠自行測試。

總結

好了,今天就到這了。技術在於折騰。多學習,讓本身武裝起來,變強大。

相關文章
相關標籤/搜索