一、前言
最近有個朋友需要用Java做一個圖像識別的東西,因此幫忙參考了網(wǎng)上資料寫了一個基于Tess4J簡單版的圖像識別demo,供參考。
二、簡單實例
1、首先創(chuàng)建一個新的maven項目(創(chuàng)建教程在此省略,自行百度),將所需jar包引入pom.xml
<dependencies>
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.4.0</version>
</dependency>
</dependencies>
2、在任意地方創(chuàng)建一個文件夾tessdata,將下載的chi_sim.traineddata 和 eng.traineddata語言包存放在該目錄下,也可以直接存放到自己項目的resources/tessdata目錄下。
語言庫下載地址:https://github.com/tesseract-ocr/tessdata
語言庫地址
3、編寫代碼
// 識別圖片的路徑(修改為自己的圖片路徑)
String path = "D:\\test.jpg";
// 語言庫位置(修改為跟自己語言庫文件夾的路徑)
String lagnguagePath = "D:\\tessdata";
File file = new File(path);
ITesseract instance = new Tesseract();
//設(shè)置訓(xùn)練庫的位置
instance.setDatapath(lagnguagePath);
//chi_sim :簡體中文, eng 根據(jù)需求選擇語言庫
instance.setLanguage("eng");
String result = null;
try {
long startTime = System.currentTimeMillis();
result = instance.doOCR(file);
long endTime = System.currentTimeMillis();
System.out.println("Time is:" + (endTime - startTime) + " 毫秒");
} catch (TesseractException e) {
e.printStackTrace();
}
System.out.println("result: ");
System.out.println(result);
4、測試
本文以一張簡單的圖片為例:圖片放置在D:\test.png根目錄下,因此使用代碼測試前需要修改代碼中指定的兩個路徑!??!
識別圖片:
測試
運行代碼后:
識別后
5、可選步驟:配置環(huán)境變量(TESSDATA_PREFIX)
環(huán)境變量地址指向你存放語言包的文件夾路徑,如:我的語言包路徑在 D:\tessdata
環(huán)境變量
本文代碼參考自:https://blog.csdn.net/zai_xia/article/details/80003778
往期系列文章:
Spring Security系列教程
ELK日志采集整合教程