全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

IOS身份证识别(OCR源码)详解及实例代码

IOS身份证识别(OCR源码)详解

最近项目用到身份证识别,在github上搜了一堆demo,在Google上找了一堆代码,有能识别出证件照的,但是都是打包成.a的静态库,没有源码,我努力吃了几天书,有了一点研究成果,现在贴出来与大家分享,要是有更好的方法,希望大神指正,共同探讨解决方案。(以下代码本人亲测可用,正在进一步探索智能识别,如有兴趣,请加入)

这里用到了两个开源库:OpenCV、TesseractOCRiOS,两个语言包chi_sim、eng。身份证识别的流程主要有:灰度化,阀值二值化,腐蚀,轮廓检测,取出身份证号码区域,TesseractOCR识别文字。

身份证识别核心源码:

UIImage * image = [UIImage imageNamed:@"abc.png"];

//将UIImage转换成Matcv::Mat resultImage;

UIImageToMat(image, resultImage);

//转为灰度图

cvtColor(resultImage, resultImage, 6);

//利用阈值二值化

cv::threshold(resultImage, resultImage, 100, 255, CV_THRESH_BINARY);

//腐蚀,填充(腐蚀是让黑色点变大)

cv::Mat erodeElement = getStructuringElement(cv::MORPH_RECT, cv::Size(140,140)); 

cv::erode(resultImage, resultImage, erodeElement);

//轮廊检测std::vector> contours;

//定义一个容器来存储所有检测到的轮廊

cv::findContours(resultImage, contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0));

//取出身份证号码区域

std::vectorrects;cv::Rect numberRect = cv::Rect(0,0,0,0); std::vector>::const_iterator itContours = contours.begin();

for ( ; itContours != contours.end(); ++itContours) {

cv::Rect rect = cv::boundingRect(*itContours);

rects.push_back(rect);

NSLog(@"位置分别为:x=%d,y=%d,width=%d,height%d",rect.x,rect.y,rect.width,rect.height);

//算法原理:如果新的区域范围宽度大于已赋值区域宽度,并且宽度为高度的五倍则赋予新值

    if (rect.width > numberRect.width && rect.width > rect.height * 5 && rect.height > 200 && rect.height < 300) {

    numberRect = rect;

    }

}

//定位成功成功,去原图截取身份证号码区域,并转换成灰度图、进行二值化处理

cv::Mat matImage;

UIImageToMat(image, matImage);

resultImage = matImage(numberRect);

cvtColor(resultImage, resultImage, cv::COLOR_BGR2GRAY);

cv::threshold(resultImage, resultImage, 80, 255, CV_THRESH_BINARY);

//将Mat转换成UIImage

UIImage *numberImage = MatToUIImage(resultImage);

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# IOS身份证识别(OCR源码)  # IOS身份证识别详解  # IOS  # OCR源码  # iOS 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐)  # IOS开发之由身份证号码提取性别的实现代码  # iOS身份证号码识别示例  # IOS 身份证校验详细介绍及示例代码  # iOS正则表达式验证手机号、邮箱、身份证号等  # iOS判断身份证号码是否正确的方法  # iOS Touch ID 身份认证  # Objective-C实现身份证验证的方法示例  # 身份证号码  # 转换成  # 都是  # 如有  # 吃了  # 希望能  # 大神  # 找了  # 分别为  # 谢谢大家  # 大家分享  # 贴出  # 开源  # 变大  # 检测到  # 共同探讨  # 主要有  # 并转  # 证件照  # imageNamed 


相关文章: 高防服务器:AI智能防御DDoS攻击与数据安全保障  建站之星安装步骤有哪些常见问题?  如何正确选择百度移动适配建站域名?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用虚拟主机快速搭建网站?详细步骤解析  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何续费美橙建站之星域名及服务?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何快速启动建站代理加盟业务?  建站之星展会模版如何一键下载生成?  大连 网站制作,大连天途有线官网?  北京网站制作的公司有哪些,北京白云观官方网站?  如何通过远程VPS快速搭建个人网站?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  建站主机系统SEO优化与智能配置核心关键词操作指南  公司网站设计制作厂家,怎么创建自己的一个网站?  建站之星安装路径如何正确选择及配置?  建站上传速度慢?如何优化加速网站加载效率?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何用美橙互联一键搭建多站合一网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  建站主机与虚拟主机有何区别?如何选择最优方案?  临沂网站制作公司有哪些,临沂第四中学官网?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  香港网站服务器数量如何影响SEO优化效果?  如何在阿里云域名上完成建站全流程?  北京的网站制作公司有哪些,哪个视频网站最好?  如何设置并定期更换建站之星安全管理员密码?  Android滚轮选择时间控件使用详解  网站图片在线制作软件,怎么在图片上做链接?  高端云建站费用究竟需要多少预算?  网站制作话术技巧,网站推广做的好怎么话术?  ,巨量百应是干嘛的?  建站主机核心功能解析:服务器选择与网站搭建流程指南  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  建站之星如何配置系统实现高效建站?  简单实现Android文件上传  想学网站制作怎么学,建立一个网站要花费多少?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何快速搭建高效WAP手机网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何快速搭建高效WAP手机网站吸引移动用户?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  建站之星免费模板:自助建站系统与智能响应式一键生成  建站之星伪静态规则如何设置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。