首先我們需要簡單的了解一下ocr:
ocr (optical character recognition 太闺,光學字符識別) 是指電子設備(例如掃描儀或數(shù)碼相機)檢查紙上的字符箩张,通過檢測暗,亮的模式確定其形狀汁蝶,然后用字符識別方法將形狀翻譯成計算機文字的過程。 這樣就給我編程提供了接口矩乐,我們可以識別圖片的文字了 (有些文檔我們通過手機拍照的辱姨,直接生成word )身份證識別誊酌,銀行卡識別等。
簡單的說ocr就是一種光學識別椭员。
如何在android中實現(xiàn)ocr呢车海?google已經(jīng)為我們提供了一個類庫,里面有對應的api可以供我們調(diào)用隘击,
在github的地址是:github.com/rmtheis/tess-two
我們可以將該庫依賴進我們的項目中侍芝,就可以實現(xiàn)了身份證上文字的識別,特別注意的是再使用該類庫時埋同,需要在我們手機的根目錄下新建一個tessdata文件夾竭贩,里面放我們的中文識別符,既然要檢測中文莺禁,當然要一個類似于字典的文件留量。
中文識別符的下載地址為:github.com/daheicode/chi_sim.git
下面簡單介紹介紹一下這個類庫的使用,使用起來比較簡單:
tess-two有一個核心的類 ?TessBaseAPI哟冬,通過這個類我們的中文識別字符楼熄,通過調(diào)用該類的init()方法來實現(xiàn),然后設置我們要識別身份證的圖片浩峡,調(diào)用該類的setImage()方法實現(xiàn)可岂,最后返回我們的結(jié)果,通過調(diào)用getUTF8Text()方法來實現(xiàn)翰灾。就會得到我們的識別結(jié)果缕粹。
該類的操作都屬于耗時操作,所以要放在工作線程中纸淮,避免ui線程阻塞平斩。
可以看出該方法簡單,當然效果也是很差強人意的咽块,本人親測绘面,識別速度很慢,大概需要30s左右,并且識別的準確度也很低揭璃,tees-two對中文識別本來就不是很好晚凿,所以這種方法不是很好,我們需要一個更好的識別系統(tǒng)瘦馍,能更快速歼秽,更準確的識別。下一篇我會介紹使用百度云的文字識別來進行身份證的識別情组。
地址為: