Java使用Tess4J實現(xiàn)圖像識別方式
Java Tess4J實現(xiàn)圖像識別
最近需要用Java做一個圖像識別的東西,查了一些資料,在此寫一個基于Tess4J的教程,方便其他人參考和使用。
其實做圖像識別,也可以使用TESSERACT-OCR來實現(xiàn),但是該方式需要下載軟件,在電腦上安裝環(huán)境,移植性不高,使用Tess4J只需要下載相關Jar包,導入項目,再把項目封裝好就可以處處運行了。
首先,下載Tess4J的相關資源(一個壓縮包)
官網(wǎng):http://tess4j.sourceforge.net/codesample.html
解壓,其中的目錄結(jié)構(gòu)如下:
需要用到其中圈起來的三個文件夾中的東西。lib文件夾下放的是需要用到的Jar包,tessdata下放的是語言庫,默認的有英語庫,中文庫需要另外下載,下載地址:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata。
新建一個Java項目,將lib文件夾和tessdata文件夾復制到項目的根目錄下,找到dist文件夾下的tess4j.jar(名字可能有版本號),將該文件也復制到項目根目錄下的lib文件夾下。
項目的的目錄如下
lib中的文件如下(tess4J.jar也在該目錄下)
再在eclipse中打開項目
在項目中導入lib文件夾中所有的jar包(Build path --> configure build path),導入后的結(jié)果如下:
這樣前期準備工作就完成了,下面就剩下代碼了。
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 + "http://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 + "http://tessdata"); instance.setLanguage("eng");//chi_sim :簡體中文, eng 根據(jù)需求選擇語言庫 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); } }
這樣就搞定了。
效果如下
原圖:
讀取結(jié)果:
從結(jié)果來看準確率還有待提高,l 和 1分不清,0 和 O 也沒有分清,漢字的準確率還要低一些,大家可以自行訓練字體庫優(yōu)化。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
關于maven打包時的報錯: Return code is: 501 , ReasonPhrase:HTTPS Requ
這篇文章主要介紹了關于maven打包時的報錯: Return code is: 501 , ReasonPhrase:HTTPS Required,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Java?hibernate延遲加載get和load的區(qū)別
這篇文章主要介紹了Java?hibernate延遲加載get和load的區(qū)別,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09SpringBoot+SpringSecurity實現(xiàn)基于真實數(shù)據(jù)的授權認證
Spring Security是一個功能強大且高度可定制的身份驗證和訪問控制框架,Spring Security主要做兩個事情,認證、授權。這篇文章主要介紹了SpringBoot+SpringSecurity實現(xiàn)基于真實數(shù)據(jù)的授權認證,需要的朋友可以參考下2021-05-05Java調(diào)用opencv IDEA環(huán)境配置的教程詳解
這篇文章主要為大家詳細介紹了Java調(diào)用opencv IDEA環(huán)境配置的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-03-03