網上不少教程沒有介紹清楚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 網 和 內 部 網 絡 之 間 , 以 保 證 內 部 網 絡 的 安 全 . 。 防 火 埕 對 流 經 它 的 網 絡 通 信 進 行 掃 攬 , 泉 樣 能 夠 過 滁 掉 一 些 攻 擊 , 以 免 其 在 目 標 計 算 機 上 被 執 行 「 仿 火 牆 運 可 以 偉 閉 不 使 用 的 堵 口 而 絲 它 還 能 菲 止 特 定 堡 口 的 流 出 通 信 封 鎖 特 洛 伊 木 馬 曝 後 「 它 可 以 蔡 止 來 自 特 殊 站 點 的 訪 問 仕 而 防 止 來 自 不 明 人 促 者 的 所 有 通 信 。 。