首先我們需要簡單的了解一下ocr:
ocr (optical character recognition ,光學字符識別) 是指電子設備(例如掃描儀或數碼相機)檢查紙上的字符,通過檢測暗,亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。 這樣就給我編程提供了接口,我們可以識別圖片的文字了 (有些文檔我們通過手機拍照的,直接生成word )身份證識別,銀行卡識別等。
簡單的說ocr就是一種光學識別。
如何在android中實現ocr呢?google已經為我們提供了一個類庫,里面有對應的api可以供我們調用,
在github的地址是:github.com/rmtheis/tess-two
我們可以將該庫依賴進我們的項目中,就可以實現了身份證上文字的識別,特別注意的是再使用該類庫時,需要在我們手機的根目錄下新建一個tessdata文件夾,里面放我們的中文識別符,既然要檢測中文,當然要一個類似于字典的文件。
中文識別符的下載地址為:github.com/daheicode/chi_sim.git
下面簡單介紹介紹一下這個類庫的使用,使用起來比較簡單:
tess-two有一個核心的類 ?TessBaseAPI,通過這個類我們的中文識別字符,通過調用該類的init()方法來實現,然后設置我們要識別身份證的圖片,調用該類的setImage()方法實現,最后返回我們的結果,通過調用getUTF8Text()方法來實現。就會得到我們的識別結果。
該類的操作都屬于耗時操作,所以要放在工作線程中,避免ui線程阻塞。
可以看出該方法簡單,當然效果也是很差強人意的,本人親測,識別速度很慢,大概需要30s左右,并且識別的準確度也很低,tees-two對中文識別本來就不是很好,所以這種方法不是很好,我們需要一個更好的識別系統,能更快速,更準確的識別。下一篇我會介紹使用百度云的文字識別來進行身份證的識別。
地址為: