SpringBoot+Tess4j實現牛逼的OCR識別工具的示例代碼

前言

“ 等不到風中你的臉頰

眼淚都美到很融洽

等不到掩飾的雨落下

我的眼淚被你察覺 ”

聽著循環的歌曲,寫著久違的bug。好吧,還是一天。正好一個小夥伴說,要不要做個工具站玩一下。我就隨意的找瞭個工具站,看瞭下,發現很多都有文字的OCR識別功能。因此,我想起來之前瞭解的非常流行的開源的OCR大神級別的項目,Tesseract OCR。

簡單介紹

官網如下所示

tesseract-ocr.github.io/

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

詳細的不再介紹,感興趣的,可以進入同志網站:https://github.com/tesseract-ocr/tesseract ,觀摩學習。

實操準備

要想在開發中使用,還是需要接入對應的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 ,變量名,固定,值為官網下載文件 https://github.com/tesseract-ocr/tessdata

Sixth 運行

結果如下:

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

instance.setOcrEngineMode(0);

是不是舒服多瞭,哈哈。識別率瞬間上漲。

大傢可以自行測試。

總結

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

到此這篇關於SpringBoot+Tess4j實現牛逼的OCR識別工具的示例代碼的文章就介紹到這瞭,更多相關SpringBoot Tess4j OCR識別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: