1.在Tesseract中訓練字庫的時候非常麻煩,輸的指令又多,而且容易出錯!於是就想着把字庫生成的指令整合起來,在MFC上進行實現!程序界面如下:
原來訓練字庫的步驟可以參考本博客中的Tesseract-OCR 訓練自己的中文字庫,從步驟可知,只能從第5步開始寫起,前面的生成tif格式的文件,生成.box文件,進行識別糾正這三步只能手動執行了!
2.從控制檯上手動輸出生成指令可知(不太明白的朋友可以根據結合指令看下,高手路過...),生成字庫時要通過cmd指令進入到Tesseract的安裝目錄,因爲訓練生成過程中用到的程序是在Tesseract的安裝目錄中,所以寫出來的程序要麼就拷貝到Tesseract的安裝目錄上運行,要麼就在生成命令中加上完整的路徑,我偷下懶,就採用了前者的方式!3.以下就列舉下程序中遇到的一些問題:
A.重命名unicharset、inttemp、pffmtable、shapetable、normproto這五個文件失敗,如下圖:
調試下程序,發現程序代碼書寫時對的,猜想是權限問題,結果重新以管理員身份運行程序,更名成功了!但是又遇到另一個問題,詳情看B!
B.文件是有的,但是就是更名失敗,唯獨就只有一個normproto!排除了重命名代碼的問題,猜想因爲訓練指令生成需要時間,可能是由於在執行重命名的時候normproto文件還沒有生成成功,它是在執行重命名的代碼之後才生成出來的!於是就在重命名改文件名之前sleep了一下,結果發現成功了!
C.定義字體特徵文件(font 0 0 0 0 0 )中的字體名稱輸入有誤的時候,會出現以下錯誤:
這個要從.box文件中進行截取,保持一致:
D. .BOX文件的命名需要有一定的規則(下面圖片是某博客的命名說明!),格式如下:
[lang].[fontname].exp[num].tif 。其中 其中lang爲語言名稱,fontname爲字體名稱,num爲序號,可以隨便定義! 例如:chi.myself.exp0.tif word.font.exp0.tif (爲了程序處理方便,在程序中.tif的文件的命名格式我也要求跟.box文件的命名格式一樣!)
E.如果生成失敗,建議將指令運行間隔時間調整大點再重新試下!
F.最終生成及測試結果如下圖,已在其他電腦上試過,可用:
程序環境:
1.VS2013 + Tesseract-Ocr 3.02.02 + Win7 旗艦版 64位
2.拷貝到其他電腦上測試可用;
3.工具下載(親測可用):Tesseract 一鍵生成字庫