全网整合营销服务商

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

免费咨询热线: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 


相关文章: 佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何基于云服务器快速搭建网站及云盘系统?  用v-html解决Vue.js渲染中html标签不被解析的问题  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  湖北网站制作公司有哪些,湖北清能集团官网?  高端建站三要素:定制模板、企业官网与响应式设计优化  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何通过山东自助建站平台快速注册域名?  ,想在网上投简历,哪几个网站比较好?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  c# await 一个已经完成的Task会发生什么  北京制作网站的公司,北京铁路集团官方网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Swift中循环语句中的转移语句 break 和 continue  独立制作一个网站多少钱,建立网站需要花多少钱?  济南专业网站制作公司,济南信息工程学校怎么样?  建站VPS选购需注意哪些关键参数?  Java解压缩zip - 解压缩多个文件或文件夹实例  专业网站建设制作报价,网页设计制作要考什么证?  Swift中switch语句区间和元组模式匹配  宝塔建站无法访问?如何排查配置与端口问题?  如何通过虚拟主机空间快速建站?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  大连 网站制作,大连天途有线官网?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  定制建站流程步骤详解:一站式方案设计与开发指南  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  免费ppt制作网站,有没有值得推荐的免费PPT网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速搭建响应式可视化网站?  如何在IIS中新建站点并解决端口绑定冲突?  建站org新手必看:2024最新搭建流程与模板选择技巧  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  小程序网站制作需要准备什么资料,如何制作小程序?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  网站制作服务平台,有什么网站可以发布本地服务信息?  如何高效利用亚马逊云主机搭建企业网站?  建站主机无法访问?如何排查域名与服务器问题  建站之星代理如何获取技术支持?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  想学网站制作怎么学,建立一个网站要花费多少?  如何通过VPS建站无需域名直接访问?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  网站制作的步骤包括,正确网址格式怎么写?  电商网站制作公司有哪些,1688网是什么意思? 

您的项目需求

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