一、Tesseract訓練
大體流程為:安裝jTessBoxEditor -> 獲取樣本文件 -> Merge樣本文件 –> 生成BOX文件 -> 定義字符配置文件 -> 字符矯正 -> 執行批處理文件 -> 將生成的traineddata放入tessdata中
1、用jTessBoxEditor把要訓練樣本圖片文件合並成tif文件(樣本圖片一定要為有效的格式圖片)
運行jTessBoxEditor程序,界面如下: 
點擊頂欄的Tools選項,選擇Merge TIFF.. 進入你要訓練的樣本圖片所在的目錄,點擊Ctrl+Alt+A,選擇所有圖片點擊打開: 
然后保存文件名到指定目錄,我這里保存的文件名為: langyp.font.exp0.tif

2、生成Box文件
打開cmd,到你langyp.font.exp0.tif文件所在目錄,執行:
tesseract langyp.font.exp0.tif langyp.font.exp0 batch.nochop makebox

結果生成了langyp.font.exp0.box文件
3、 對樣本圖片用jTessBoxEditor工具進行矯正
點擊jTessBoxEditor工具的Box Editor選項,點擊下方的open選項,打開剛剛生成的langyp.font.exp0.tif文件,結果如下: 
右側為對應的Box文件數據,如果char的字符和當前的樣本圖片一致時就進行矯正,修改char里的字符,然后進行save,這樣就矯正了,進入下張樣本圖片時,同樣,矯正后點擊save,當所有樣本圖片都矯正了,這一步也就完成了
4、生成font_properties文件(該文件沒有后綴名)
在命令行執行:echo font 0 0 0 0 0 >font_properties
結果生成了font_properties文件 
內容為字體名font,后面帶5個0,分別代表字體的粗體、斜體等屬性,這里全部是0
5、生成.tr訓練文件
在命令行執行: tesseract langyp.font.exp0.tif langyp.font.exp0 -l eng -psm 7 nobatch box.train

6、生成字符集文件
在命令行執行 : unicharset_extractor langyp.font.exp0.box
結果生成了unicharset文件
7、生成shape文件
在命令行執行 : shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
結果生成了shapetable文件和langyp.unicharset文件
8、生成聚集字符特征文件
在命令行執行: mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
結果生成了pffmtable,inttemp,unicharset文件
9、生成字符正常化特征文件
在命令行執行: cntraining langyp.font.exp0.tr
結果生成了normproto文件
10、把h,i步驟生成的文件用rename命令進行更名
在命令行執行:
**rename normproto fontyp.normproto
rename inttemp fontyp.inttemp
rename pffmtable fontyp.pffmtable
rename unicharset fontyp.unicharset
rename shapetable fontyp.shapetable** 
11、合並訓練文件
在命令行執行: combine_tessdata fontyp. 
12、將fontyp.traineddata文件拷貝至Tesseract-OCR文件夾里的tessdata語言包文件夾里
windows下面:

linux下面:
輸入命令查找安裝文件夾:whereis tesseract
然后拷貝到圖上的地址:

二、Python驗證碼識別代碼

