java 使用tess4j實現OCR的最簡單樣例


網上很多教程沒有介紹清楚tessdata的位置,以及怎么配置,並且對中文庫的描述也存在問題,這里介紹一個最簡單的樣例。

1、使用maven,直接引入依賴,確保你的工程JDK是1.8以上

        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>4.3.1</version>
        </dependency>

2、實現代碼

public class OCRDemo {
    public static void main(String args[]) throws Exception {
        ITesseract instance = new Tesseract();
        instance.setDatapath("tessdata"); //相對目錄,這個時候tessdata目錄和src目錄平級

//        instance.setDatapath("E:\\myProgram\\java\\ocrdemo\\tessdata");//支持絕對目錄
        instance.setLanguage("chi_sim");//選擇字庫文件(只需要文件名,不需要后綴名)

        try {
            File imageFile = new File("d:\\temp\\4.jpg");
            String result = instance.doOCR(imageFile);//開始識別
            System.out.println(result);//打印圖片內容
        } catch (Exception e) {
            System.out.println(e.toString());//打印圖片內容
        }
    }
}

3、這里一定要注意tessdata的目錄位置

4、還需注意就是你選的語言庫是不是真的庫,網上給的地址,比如這個:https://github.com/tesseract-ocr/tessdata 

你從上面下載的不是真正的訓練字庫,你需要真正找到字庫才行。

5、真正的中文字庫是比較大的,用notepad++打開文件看看確認是否是真的字庫,不然程序會報錯誤,無法打開chi_sim.traineddata文件,

這個地址可以下載到文件:https://raw.githubusercontent.com/tesseract-ocr/tessdata/master/chi_sim.traineddata

6、識別的效果一般,復雜的表格識別需要自定義識別區域

識別的圖片:

 

識別后的文字:

. 防 火 塔 系 統

防 火 埋 作 為 不 同 網 絡 或 網 絡 安 全 城 之 間 信 息 的 出 入 口 能 根 據 企 業 的 安 全 策 畦 接 制
出 人 網 絡 的 信 息 流 口 本 身 具 有 較 強 的 抗 攻 擊 能 力 「 它 是 提 供 信 息 安 全 服 務 實 現 網
絡 和 信 息 宗 全 的 基 蠣 設 施 . 在 逐 輻 上 , 防 火 境 是 一 個 分 離 器 限 制 器 和 分 析 器 , 可
以 有 效 勘 接 內 部 網 和 Intemet 之 間 的 任 何 活 動 「 保 證 內 部 網 絡 的 安 全 . 防 火 牆 通 常
放 在 外 部 Intemet 網 和 內 部 網 絡 之 間 , 以 保 證 內 部 網 絡 的 安 全 . 。

防 火 埕 對 流 經 它 的 網 絡 通 信 進 行 掃 攬 , 泉 樣 能 夠 過 滁 掉 一 些 攻 擊 , 以 免 其 在 目 標 計
算 機 上 被 執 行 “ 仿 火 牆 運 可 以 偉 閉 不 使 用 的 堵 口 而 絲 它 還 能 菲 止 特 定 堡 口 的 流 出
通 信 封 鎖 特 洛 伊 木 馬 曝 后 「 它 可 以 蔡 止 來 自 特 殊 站 點 的 訪 問 仕 而 防 止 來 自 不 明
人 促 者 的 所 有 通 信 。 。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM