1. iOS 自己實(shí)現(xiàn) 名片識(shí)別 一 功能分析,模塊劃分
2. iOS 自己實(shí)現(xiàn) 名片識(shí)別 二 相機(jī)模塊制作
3. iOS 自己實(shí)現(xiàn) 名片識(shí)別 三 圖片處理
4. iOS 自己實(shí)現(xiàn) 名片識(shí)別 四 圖片轉(zhuǎn)文字以及歸類
本頁(yè)主題: 圖片轉(zhuǎn)文字以及歸類
先看效果展示
原圖:

原圖
處理后:

result
OCR識(shí)別效果:
量 U
::; 愧睡酣苒 `:| . -
@ 唧涮區(qū) 總 代埋
í
倪禮波經(jīng)理
展廳: 西部家具城南海廳B217號(hào)
電話: 15031600991 13473605996
/ 義-〉15319986681
歸類后的效果:
組織 : 量 U
地址 : 西部家具城南海廳B217號(hào)
姓名 : 倪禮波
職位 : 經(jīng)理
Phone : 15031600991
Phone : 13473605996
Phone : 15319986681
Other : 愧睡酣苒 |
Other : @ 唧涮區(qū) 總 代埋
效果還行,但達(dá)不到商用的目標(biāo)
實(shí)現(xiàn)過(guò)程
1. 接入OCR模塊
這一過(guò)程比較復(fù)雜,網(wǎng)上也都能查到
2. 圖片轉(zhuǎn)文字
- (void)tesseractRecognizeImage:(UIImage *)image compleate:(void (^)(NSString *text))compleate
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
G8Tesseract *tesseract = [[G8Tesseract alloc] initWithLanguage:@"chi_sim"];
tesseract.engineMode = G8OCREngineModeTesseractOnly;
tesseract.image = image;
[tesseract recognize];
//執(zhí)行回調(diào)
compleate(tesseract.recognizedText);
});
}
3. 文字歸類
這一塊也比較復(fù)雜,我制作了中文的歸類
- 去除沒(méi)用的字符
NSArray *array = @[@":",@"-",@""",@"~",@"/",@"」",@";",@"ˉ",@"`",@"'",@"¢",@"±",@"‘",@"_"];
- 將字符串按行轉(zhuǎn)換為數(shù)組
- 進(jìn)行關(guān)鍵字篩選 : 電話,郵箱,qq,web, 地址
把每一行都進(jìn)行篩選, 篩選成功后刪除該行
- 檢查姓名與職位 (需要用到兩張表, 我這里使用了兩個(gè)txt文件代替表)
檢測(cè)job ,如果job有多余,多余的部分可能為姓名,如果多余的部分不是姓名 則為job的一部分
- 如果第一行還沒(méi)有被使用,那么假設(shè)第一個(gè)標(biāo)記是組織名稱。
- 如果地址還沒(méi)有,檢查地址
//檢查地址的關(guān)鍵字,有兩個(gè)或者兩個(gè)以上關(guān)鍵字則標(biāo)記為地址
@[@"省",@"市",@"區(qū)",@"路",@"大廈",@"號(hào)",@"城",@"室",@"街"];
- 根據(jù)正則重新過(guò)濾一遍 web,phone,email,qq
列一下正則
/** 郵箱 */
- (NSString *)emailRegex
{
return @"\\w[-\\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\\.)+[A-Za-z]{2,14}";
}
/** 手機(jī) */
- (NSString *)phoneNumRegex
{
return @"0?(13|14|15|17|18|19)[0-9]{9}"; //國(guó)內(nèi)手機(jī)號(hào)
}
/** 電話 */
- (NSString *)telRegex
{
return @"[0-9-()()]{7,18}";
}
/** web */
- (NSString *)webRegex
{
return @"^((https|http|ftp|rtsp|mms)?:\\/\\/)[^\\s]+";
}
/** qq */
- (NSString *)qqRegex
{
return @"[1-9]([0-9]{5,11})";
}
- 剩余的則標(biāo)記為other
THE END !
由于ocr模塊比較大,需要代碼的小伙伴可以留下聯(lián)系方式,或者直接與我聯(lián)系:QQ 258141764
發(fā)現(xiàn)需要代碼的人還是挺多的,為了方便傳到了百度網(wǎng)盤
鏈接:https://pan.baidu.com/s/17LsXgbe3XuOiv9V4sVTVVQ 密碼:dzk2
需要的請(qǐng)自行下載!
代碼所在位置:
code.png
