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

網上不少教程沒有介紹清楚tessdata的位置,以及怎麼配置,而且對中文庫的描述也存在問題,這裏介紹一個最簡單的樣例。java

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

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

二、實現代碼github

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());//打印圖片內容
        }
    }
}

三、這裏必定要注意tessdata的目錄位置maven

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

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

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

這個地址能夠下載到文件:https://raw.githubusercontent.com/tesseract-ocr/tessdata/master/chi_sim.traineddatablog

六、識別的效果通常,複雜的表格識別須要自定義識別區域教程

識別的圖片:圖片

 

識別後的文字:get

. 防 火 塔 系 統

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

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