首先我們需要簡單的了解一下ocr:
ocr (optical character recognition ,光學(xué)字符識別) 是指電子設(shè)備(例如掃描儀或數(shù)碼相機(jī))檢查紙上的字符,通過檢測暗,亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計(jì)算機(jī)文字的過程。 這樣就給我編程提供了接口,我們可以識別圖片的文字了 (有些文檔我們通過手機(jī)拍照的,直接生成word )身份證識別,銀行卡識別等。
簡單的說ocr就是一種光學(xué)識別。
如何在android中實(shí)現(xiàn)ocr呢?google已經(jīng)為我們提供了一個(gè)類庫,里面有對應(yīng)的api可以供我們調(diào)用,
在github的地址是:github.com/rmtheis/tess-two
我們可以將該庫依賴進(jìn)我們的項(xiàng)目中,就可以實(shí)現(xiàn)了身份證上文字的識別,特別注意的是再使用該類庫時(shí),需要在我們手機(jī)的根目錄下新建一個(gè)tessdata文件夾,里面放我們的中文識別符,既然要檢測中文,當(dāng)然要一個(gè)類似于字典的文件。
中文識別符的下載地址為:github.com/daheicode/chi_sim.git
下面簡單介紹介紹一下這個(gè)類庫的使用,使用起來比較簡單:

tess-two有一個(gè)核心的類 ?TessBaseAPI,通過這個(gè)類我們的中文識別字符,通過調(diào)用該類的init()方法來實(shí)現(xiàn),然后設(shè)置我們要識別身份證的圖片,調(diào)用該類的setImage()方法實(shí)現(xiàn),最后返回我們的結(jié)果,通過調(diào)用getUTF8Text()方法來實(shí)現(xiàn)。就會(huì)得到我們的識別結(jié)果。
該類的操作都屬于耗時(shí)操作,所以要放在工作線程中,避免ui線程阻塞。
可以看出該方法簡單,當(dāng)然效果也是很差強(qiáng)人意的,本人親測,識別速度很慢,大概需要30s左右,并且識別的準(zhǔn)確度也很低,tees-two對中文識別本來就不是很好,所以這種方法不是很好,我們需要一個(gè)更好的識別系統(tǒng),能更快速,更準(zhǔn)確的識別。下一篇我會(huì)介紹使用百度云的文字識別來進(jìn)行身份證的識別。
地址為: