背景:項(xiàng)目需要掃描識(shí)別技術(shù),比較了微軟(智能識(shí)別技術(shù))和谷歌的(Tess4J),決定使用這個(gè)開源的東東。
建議:
1、可以到GitHub找相關(guān)的Tess4J項(xiàng)目
2、到Tess4J官方下載最新的包,查看示例代碼?http://tess4j.sourceforge.net/
3、到Tess4J官網(wǎng)下載示例代碼?https://sourceforge.net/projects/tess4j/?速度比較慢
4、指導(dǎo)頁(yè)面,對(duì)應(yīng)編輯器,建立簡(jiǎn)單代碼?http://tess4j.sourceforge.net/tutorial/
一、項(xiàng)目結(jié)構(gòu):使用eclipse 構(gòu)建java項(xiàng)目,下圖為項(xiàng)目結(jié)構(gòu)

構(gòu)建TestTess4j.java,(勾選作為main函數(shù))
public class TestTess4j {
public static void main(String args[]) {
File imageFile = new File("eurotext.tif");
Tesseract instance = Tesseract.getInstance();
try {
String result = instance.doOCR(imageFile);
System.out.println(result);
} catch (Exception e) {
System.err.println(e.getCause());
}
}
}
右擊運(yùn)行,java application ,選擇你的main類,TestTess4j。
輸出成功。
注意:jar包和dll文件是對(duì)應(yīng)的,更高版本的dll文件在jar包中,可以不引用dll文件。
二、創(chuàng)建web項(xiàng)目,引用具有多個(gè)API接口類的Tess4J項(xiàng)目。
三、整個(gè)過程碰到的問題
1、找不到tess4j
原因,僅僅在class path中引入了jar包,沒有在WEB-INF的lib目錄下拷貝jar包,總是報(bào)錯(cuò)。
2、找不到模塊
一個(gè)jar包,對(duì)應(yīng)一個(gè)dll,每個(gè)dll版本不同名稱不同,系統(tǒng)也區(qū)分32--64,在LoadLibs.java中有

如果不清楚版本號(hào),可以使用ZAR打開jar包,查看里面的dll文件名稱。
注意:lept4j.jar 和test4J.jar的版本要對(duì)應(yīng),因?yàn)樗鼈兝锩娲虬薲ll文件,需要匹配。
這個(gè)屬于tessract實(shí)例化的時(shí)候,默認(rèn)找不到tessdata包,因?yàn)檫@個(gè)包里面有對(duì)應(yīng)的語(yǔ)言訓(xùn)練包,需要指定
這里直接使用了絕對(duì)路徑

4、java.jna.pointer報(bào)錯(cuò)
這個(gè)是因?yàn)閠ess4j的jar包問題,需要更換對(duì)應(yīng)的版本
5、java.lang.UnsatisfiedLinkError?
這個(gè)是因?yàn)閐ll文件不能正常加載的問題,這個(gè)有很多可能性
(1)、dll文件和你本地系統(tǒng)的c++環(huán)境不匹配,不同的libtesseract3**貌似使用的是不同版本的vs編輯器,
我的302最終,我重新到微軟的官網(wǎng)下載了運(yùn)行的配件?
這個(gè)是2013組件地址?https://www.microsoft.com/zh-cn/download/details.aspx?id=40784
?(2)、dll文件缺失或者錯(cuò)誤匹配
例如302.dll需要匹配168

而305則需要匹配174
這個(gè)可以通過dll檢測(cè)軟件來(lái)查詢,
找對(duì)應(yīng)的dll文件
https://sourceforge.net/projects/tess4j/files/lept4j/
使用Dependency Walker工具查看DLL文件,通過軟件打開libtesseract302.dll如果缺少liblept***.dll則會(huì)出現(xiàn)黃色嘆號(hào),
(3)你的系統(tǒng)可能缺少必要的dll文件,通過剛才的軟件,打開dll后,看到黃色嘆號(hào),表示缺少軟件
經(jīng)測(cè)試,有嘆號(hào)的情況也能正常運(yùn)行。
三、web項(xiàng)目的目錄結(jié)構(gòu)



