中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何使用Tess4J實現圖像識別

發布時間:2022-03-03 14:04:33 來源:億速云 閱讀:202 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Java如何使用Tess4J實現圖像識別”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java如何使用Tess4J實現圖像識別”這篇文章吧。

Java Tess4J實現圖像識別

最近需要用Java做一個圖像識別的東西,查了一些資料,在此寫一個基于Tess4J的教程,方便其他人參考和使用。

其實做圖像識別,也可以使用TESSERACT-OCR來實現,但是該方式需要下載軟件,在電腦上安裝環境,移植性不高,使用Tess4J只需要下載相關Jar包,導入項目,再把項目封裝好就可以處處運行了。

首先,下載Tess4J的相關資源(一個壓縮包)

官網:http://tess4j.sourceforge.net/codesample.html

解壓,其中的目錄結構如下:

Java如何使用Tess4J實現圖像識別

需要用到其中圈起來的三個文件夾中的東西。lib文件夾下放的是需要用到的Jar包,tessdata下放的是語言庫,默認的有英語庫,中文庫需要另外下載,下載地址:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata。

新建一個Java項目,將lib文件夾和tessdata文件夾復制到項目的根目錄下,找到dist文件夾下的tess4j.jar(名字可能有版本號),將該文件也復制到項目根目錄下的lib文件夾下。

項目的的目錄如下

Java如何使用Tess4J實現圖像識別

lib中的文件如下(tess4J.jar也在該目錄下)

Java如何使用Tess4J實現圖像識別

再在eclipse中打開項目

在項目中導入lib文件夾中所有的jar包(Build path --> configure build path),導入后的結果如下:

Java如何使用Tess4J實現圖像識別

這樣前期準備工作就完成了,下面就剩下代碼了。

Tess4J的代碼比較簡潔

如下:

Tess4JTest.java

package ocr; 
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import net.sourceforge.tess4j.util.LoadLibs; 
import java.io.File;
import java.io.IOException;
 
/**
 * Tess4J測試類
 */
public class Tess4JTest { 
    public static void main(String[] args){ 
    	String path = "D://Java//Tess4J";//我的項目存放路徑    	
    	File file = new File(path + "//photo.jpg");
        ITesseract instance = new Tesseract();
 
        /**
         *  獲取項目根路徑,例如: D:\IDEAWorkSpace\tess4J
         */
        File directory = new File(path);
        String courseFile = null;
        try {
            courseFile = directory.getCanonicalPath();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        //設置訓練庫的位置
        instance.setDatapath(courseFile + "//tessdata"); 
        instance.setLanguage("eng");//chi_sim :簡體中文, 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);
    } 
}

這樣就搞定了。

效果如下

原圖:

Java如何使用Tess4J實現圖像識別

讀取結果:

Java如何使用Tess4J實現圖像識別

從結果來看準確率還有待提高,l 和 1分不清,0 和 O 也沒有分清,漢字的準確率還要低一些,大家可以自行訓練字體庫優化。

以上是“Java如何使用Tess4J實現圖像識別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡族自治县| 马龙县| 衡阳县| 怀远县| 那坡县| 曲松县| 南溪县| 南阳市| 龙井市| 南和县| 若羌县| 湘乡市| 林口县| 毕节市| 满城县| 四会市| 博野县| 安仁县| 股票| 静乐县| 布拖县| 清水县| 东光县| 南汇区| 辽宁省| 准格尔旗| 宜都市| 静海县| 盐山县| 禄丰县| 蕲春县| 万安县| 大城县| 巫山县| 舞钢市| 如皋市| 铜梁县| 蚌埠市| 富民县| 萝北县| 濮阳县|