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

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