iOS精选OpenCV开发实战iOS杂技

iOS 身份证识别之TesseractOCR简单实用

2017-03-18  本文已影响1199人  小Ju

最近上对从图像里识别出文字比较感兴趣, 用专业点的语言描述就是(OCR光学字符识别窥探)非常牛X的名字, 就想弄一个小玩意来练练(识别身份证上的号码).
网上搜一下这东西的难点, 其实在于识别的准确度, 如果想要很叼的准确率还是给钱用别人的SDK, 这里只是练练手罢了.
OCR光学字符识别窥探简称:OCR, 是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术..... 算了这个解释可以看这里:写的非常好: http://www.jianshu.com/p/ac4c4536ca3e
我也是打算使用openVC和TesseractOCR这两个开源框架来完成身份证识别, TesseractOCR来识别图像的文字, openVC来对照片做处理, 今天先将TesseractOCR的简单使用, 先用起来再说.
TesseractOCR是什么, 就是用来识别图像里的文字的- - !.先创建一个xcode工程, 然后在工程里导入TesseractOCR(可以直接在github里下载https://github.com/tesseract-ocr/tesseract, 也可以使用pod来导入: pod 'TesseractOCRiOS', '~> 4.0.0')

现在开始写代码了:导入头文件

#import <TesseractOCR/TesseractOCR.h>

用到了核心类:G8Tesseract 核心代码:

- (void)tesseractRecogniceWithImage:(UIImage *)image compleate:(void(^)  (NSString *text))compleate {
     G8Tesseract *tesseract = [[G8Tesseract alloc]initWithLanguage:@"eng"];
     //模式
     tesseract.engineMode = G8OCREngineModeTesseractOnly;
     tesseract.maximumRecognitionTime = 10;
     tesseract.pageSegmentationMode = G8PageSegmentationModeAuto;
     tesseract.image = [image g8_blackAndWhite];
 
     [tesseract recognize];
     compleate(tesseract.recognizedText);
}

上面的是TesseractOCR的简单使用, 前面我们只需要通过手机的摄像头来获取一张image就可以了, 需要注意的是在使用手机的摄像头的时候要在info.plist加入Privacy - Camera Usage Description来请求权限:


屏幕快照 2017-03-18 上午11.20.57.png
这个只是简单的TesseractOCR库使用来识别图像文字, 如果要识别身份证, 还要对图像处理这里就要使用到openVC了, 之后再弄吧! 还有提高识别率的再研究吧!
最后附上demo:<https://github.com/xiaojuye/regonic>
上一篇 下一篇

猜你喜欢

热点阅读