精华内容
下载资源
问答
  • OCR光学字符识别技术及其应用场景

    千次阅读 2018-07-02 13:47:31
    最近因为一个标准pdf文件内容都是扫描图像,要转为word文档以便编辑修改。...本文以百度百科为基准进行了解:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机...

    最近因为一个标准pdf文件内容都是扫描图像,要转为word文档以便编辑修改。最方便的就是依靠目前比较火的图像识别技术OCR了,如果没有这个技术,我们只有老老实实一字一字地打印到word文档中去,这样就太繁琐了,而且直接变成打字员了,太浪费时间和精力了。

    本文以百度百科为基准进行了解:

    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

    发展简史

    OCR的概念是在1929年由德国科学家Tausheck最先提出来的,后来美国科学家Handel也提出了利用技术对文字进行识别的想法。而最早对印刷体汉字识别进行研究的是IBM公司的Casey和Nagy,1966年他们发表了第一篇关于汉字识别的文章,采用了模板匹配法识别了1000个印刷体汉字。
    早在60、70年代,世界各国就开始有OCR的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为0至9的数字。以同样拥有方块文字的日本为例,1960年左右开始研究OCR的基本识别理论,初期以数字为对象,直至1965至1970年之间开始有一些简单的产品,如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业;也因此至今邮政编码一直是各国所倡导的地址书写方式。
    20世纪70年代初,日本的学者开始研究汉字识别,并做了大量的工作。中国在OCR技术方面的研究工作起步较晚,在70年代才开始对数字、英文字母及符号的识别进行研究,70年代末开始进行汉字识别的研究,到1986年,我国提出“863”高新科技研究计划,汉字识别的研究进入一个实质性的阶段,清华大学的 丁晓青教授和中科院分别开发研究,相继推出了中文OCR产品,现为中国最领先汉字OCR技术。早期的OCR软件,由于识别率及产品化等多方面的因素,未能达到实际要求。同时,由于硬件设备成本高,运行速度慢,也没有达到实用的程度。只有个别部门,如信息部门、新闻出版单位等使用OCR软件。进入20世纪90年代以后,随着平台式扫描仪的广泛应用,以及我国信息自动化和办公自动化的普及,大大推动了OCR技术的进一步发展,使OCR的识别正确率、识别速度满足了广大用户的要求。

    软件结构

    由于扫描仪的普及与广泛应用,OCR软件只需提供与扫描仪的接口,利用扫描仪驱动软件即可。因此,OCR软件主要是由下面几个部分组成。
    图像输入、预处理:
    图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式,目前有OpenCV,CxImage等开源项目 。预处理:主要包括二值化,噪声去除,倾斜较正等
    二值化:
    对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的,更好的识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图了。
    噪声去除:
    对于不同的文档,我们对噪声的定义可以不同,根据噪声的特征进行去噪,就叫做噪声去除
    倾斜较正:
    由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。
    版面分析:
    将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。
    字符切割:
    由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要文字识别软件有字符切割功能。
    字符识别:
    这一研究,已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。
    版面恢复:
    人们希望识别后的文字,仍然像原文档图片那样排列着,段落不变,位置不变,顺序不变,的输出到word文档,pdf文档等,这一过程就叫做版面恢复。
    后处理、校对:
    根据特定的语言上下文的关系,对识别结果进行较正,就是后处理。

    工作流程

    一个OCR识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析,当然也可节省因键盘输入的人力与时间。
    从影像到结果输出,须经过影像输入、影像前处理、文字特征抽取、比对识别、最后经人工校正将认错的文字更正,将结果输出。

    影像输入

    欲经过OCR处理的标的物须透过光学仪器,如影像扫描仪、传真机或任何摄影器材,将影像转入计算机。科技的进步,扫描仪等的输入装置已制作的愈来愈精致,轻薄短小、品质也高,对OCR有相当大的帮助,扫描仪的分辨率使影像更清晰、扫除速度更增进OCR处理的效率。
    影像预处理:影像预处理是OCR系统中,须解决问题最多的一个模块。影像须先将图片、表格及文字区域分离出来,甚至可将文章的编排方向、文章的提纲及内容主体区分开,而文字的大小及文字的字体亦可如原始文件一样的判断出来。
    对待识别图像进行如下预处理,可以降低特征提取算法的难度,并能提高识别的精度。
    • 二值化:由于彩色图像所含信息量过于巨大,在对图像中印刷体字符进行识别处理前,需要对图像进行二值化处理,使图像只包含黑色的前景信息和白色的背景信息,提升识别处理的效率和精确度。
    • 图像降噪:由于待识别图像的品质受限于输入设备、环境、以及文档的印刷质量,在对图像中印刷体字符进行识别处理前,需要根据噪声的特征对待识别图像进行去噪处理,提升识别处理的精确度。
    倾斜校正:由于扫描和拍摄过程涉及人工操作,输入计算机的待识别图像或多或少都会存在一些倾斜,在对图像中印刷体字符进行识别处理前,就需要进行图像方向检测,并校正图像方向。
    文字特征抽取:单以识别率而言,特征抽取可说是 OCR的核心,用什么特征、怎么抽取,直接影响识别的好坏,也所以在OCR研究初期,特征抽取的研究报告特别的多。而特征可说是识别的筹码,简易的区分可分为两类:一为统计的特征,如文字区域内的黑/白点数比,当文字区分成好几个区域时,这一个个区域黑/白点数比之联合,就成了空间的一个数值向量,在比对时,基本的数学理论就足以应付了。而另一类特征为结构的特征,如文字影像细线化后,取得字的笔划端点、交叉点之数量及位置,或以笔划段为特征,配合特殊的比对方法,进行比对,市面上的线上手写输入软件的识别方法多以此种结构的方法为主。
    对比数据库:当输入文字算完特征后,不管是用统计或结构的特征,都须有一比对数据库或特征数据库来进行比对,数据库的内容应包含所有欲识别的字集文字,根据与输入文字一样的特征抽取方法所得的特征群组。

    对比识别

    这是可充分发挥数学运算理论的一个模块,根据不同的特征特性,选用不同的数学距离函数,较有名的比对方法有,欧式空间的比对方法、松弛比对法(Relaxation)、动态程序比对法(Dynamic Programming,DP),以及 类神经网络的数据库建立及比对、HMM(Hidden Markov Model)…等著名的方法,为了使识别的结果更稳定,也有所谓的专家系统(Experts System)被提出,利用各种特征比对方法的相异互补性,使识别出的结果,其信心度特别的高。
    字词后处理:由于OCR的识别率并无法达到百分之百,或想加强比对的正确性及信心值,一些除错或甚至帮忙更正的功能,也成为OCR系统中必要的一个模块。字词后处理就是一例,利用比对后的识别文字与其可能的相似候选字群中,根据前后的识别文字找出最合乎逻辑的词,做更正的功能。
    字词数据库:为字词后处理所建立的词库。

    人工校正

    OCR最后的关卡,在此之前,使用者可能只是拿支鼠标,跟着软件设计的节奏操作或仅是观看,而在此有可能须特别花使用者的精神及时间,去更正甚至找寻可能是OCR出错的地方。一个好的OCR软件,除了有一个稳定的影像处理及识别核心,以降低错误率外,人工校正的操作流程及其功能,亦影响OCR的处理效率,因此,文字影像与识别文字的对照,及其屏幕信息摆放的位置、还有每一识别文字的候选字功能、拒认字的功能、及字词后处理后特意标示出可能有问题的字词,都是为使用者设计尽量少使用键盘的一种功能,当然,不是说系统没显示出的文字就一定正确,就像完全由键盘输入的工作人员也会有出错的时候,这时要重新校正一次或能允许些许的错,就完全看使用单位的需求了。

    结果输出

    有人只要文本文件作部份文字的再使用之用,所以只要一般的文字文件、有人要漂漂亮亮的和输入文件一模一样,所以有原文重现的功能、有人注重表格内的文字,所以要和Excel等软件结合。无论怎么变化,都只是输出档案格式的变化而已。如果需要还原成原文一样格式,则在识别后,需要人工排版,耗时耗力。

    中文识别

    资料录入

    文献资料的数字化录入,一般分为:
    1.纯图像方式。
    2.目录文本、正文图像方式。
    3.全文本方式。
    4. 全文索引方式。文本方式和图像方式的混合体。

    识别过程

    书本级:中文,英文;简体,繁体;
    版式级:竖排,横排;有无 分栏
    行切分 字切分
    识别:真正的OCR识别过程,图像信息还原成文本信息
    后处理:人工干预,主要集中在前四个阶段。

    决定因素

    1.图片的质量,一般建议150dpi以上
    2.颜色,一般对彩色识别很差,黑白的图片较高,因此建议ocr的为黑白tif格式
    3.最重要的就是字体,如果是 手写识别率很低。
    国内OCR识别简体差错率为万分之三,如果要求更高的精度需要投入更大的人工干预。繁体识别由于繁体字库的不统一性(民国时期的字库和现在繁体字库不统一),导致识别困难,在人工干预下,精度能达到90%以上(图文清晰情况下)。

    识别技巧

    1.分辨率的设置是 文字识别的重要前提。一般来讲,扫描仪提供较多的图像信息,识别软件比较容易得出识别结果。但也不是扫描分辨率设得越高识别正确率就越高。选择300dpi或400dpi分辨率,适合大部分文档扫描。注意文字原稿的扫描识别,设置扫描分辨率时千万不要超过扫描仪的光学分辨率,不然会得不偿失。下面是部分典型设置,仅供参考。
    (1)1、2、3号字的文章段,推荐使用200dpi。
    (2)4、小4、5号字的文章段,推荐使用300dpl
    (3)小5、6号字的文章段,推荐使用400dpl
    (4)7、8号字的文章段,推荐使用600dpi。
    2. 扫描时适当地调整好亮度和对比度值,使扫描文件黑白分明。这对识别率的影响最为关键,扫描亮度和对比度值的设定以观察扫描后的图像中汉字的笔画较细但又不断开为原则。进行识别前,先看看扫描得到的图像中文字质量如何,如果图像存在黑点或黑斑时或文字线条很粗很黑,分不清笔画时,说明亮度值太小了,应该增加亮度值在试试;如果文字线条凹凸不平,有断线甚至图像中汉字轮廓严重残缺时,说明亮度值太大了,应减小亮度后再试试。
    3.选好扫描软件。选一款好的适合自己的OCR软件是作好 文字识别工作的基础,一般不要使用扫描仪自带的OEM软件,OEM的OCR软件的功能少、效果差,有的甚至没有中文识别。
    再选一个图像软件,第一,OCR软件不能识别所有的扫描仪;第二,也是最关键的,利用图像软件的扫描接口扫描出来的图像便于处理。
    4.如果要进行的文本是带有格式的,如粗体、斜体、 首行缩进等,部分OCR软件识别不出来,会丢失格式或出现 乱码。如果必须扫描带有格式的文本,事先要确保使用的识别软件是否支持文字格式的扫描。也可以关闭样式识别系统,使软件集中注意力查找正确的字符,不再顾及字体和字体格式。
    5.在扫描识别报纸或其他半透明文稿时,背面的文字透过纸张混淆文字字形,对识别会造成很大的障碍。遇到该类扫描,只要在扫描原稿的背面附。盖一张黑纸,扫描时,增加扫描对比度,即可减少背面模糊字体的影响,提高识别正确率。
    6.一般文本扫描原稿都为黑、白两色原稿,但是在扫描设置时却常将扫描模式设为灰度模式。特别是在原稿质量较差时,使用灰度模式扫描,并在 扫描软件处理完后再继续识别,这样会得到较好的识别正确率。值得注意的是OCR识别软件可以自己确定阀值,几个百分点的阀值差异,可能就会影响识别的正常进行。当然,得到的图像文件的大小会比黑白文件大很多。在进行大批量文稿扫描时,必须对原稿进行测试,找到最佳的阀值百分比。
    7.遇到 图文混排的扫描原稿,首先明确使用的识别软件是否支持自动分析图文这一功能。如果支持的话,在进行这类扫描识别时,OCR软件会自动计算出文本的内容、位置和先后顺序。文字部分可以按照标示顺序正常识别。
    8.手动选取扫描区域会有更好识别效果。设置好参数后,先预览一下,然后开始选取扫描区域。不要将要用的文章一股脑儿选在一个区域内,因为现在的文章排版为了追求更好的视觉效果,使用 图文混排的较多,扫成一幅图像会影响OCR识别。因此,要根据实际情况将版面分成N个区域,怎么划分区域呢?每一区域内的文字字体、字号最好一致,没有图形、图像,每一行的宽度一致,遇到长短不一,再细分,一般一次最多可扫描10个选区。根据不同情况,合理地设置识别区域的顺序。不要嫌这个过程太烦,那可是提高识别率的有效手段。注意各识别区域不能有交叉,做到一切觉得完好以后再进行识别。这样一般的识别率会在95%以上,对于识别不正确的文字进行校对后,就可以进入相应的 文字处理软件进行所需的处理了。
    9.在放置扫描原稿时,把扫描的文字材料一定要摆放在扫描起始线正中,以最大限度地减小由于光学透镜导致的失真。同时应保护扫描仪玻璃的干净和不受损害。文字有一定角度的倾斜,或者是原稿文字部分为不正规排版,必须在扫描后使用旋转工具,进行纠正;否则OCR识别软件会将水平笔划当做斜笔划处理,识别正确率会下降很多。建议用户尽量将扫描原稿放正,用工具旋转纠正会降低图像质量,使字符识别更加困难。
    10.先"预览"整体版面,选定要扫描的区域,再用"放大预览"工具,选择一小块进行放大显示到全屏幕,观察其文字的对比度,文字的深浅浓度,据情况调整"阀值"的大小,最终要求文字清晰,不浓(文字成团),不淡(文字断笔伐),一般在"阀值"80左右为宜,最后再扫描。
    11.用工具擦掉图像污点,包括原来版面中的不需要识别的插图、分隔线等,使文字图像中除了文字没有一点多余的东西;这可以大提高识别率并减少识别后的修改工作。
    12.如果要扫描印刷质量稍微差一些的文章,比如说报纸,扫描的结果将不会黑白分明,会出现大量的黑点,而且在字体的笔画上也会出现粘连现象,这两项可是汉字识别的大忌,将严重影响汉字识别的正确率。为获得较好的识别结果,必须仔细进行色调调节,反复扫描多次才能获得比较理想的结果。另外由于报纸很薄且大部分纸质不高,导致扫描仪上盖板不能完全压住报纸(有缝隙),所以一般情况下报纸的扫描识别效果没有杂志的效果好。解决办法是在报纸上压一至两本16K的杂志,效果还是不错的。

    应用场景

    百度AI开放平台: http://ai.baidu.com/tech/ocr

    远程身份认证

    结合OCR和人脸识别技术,实现用户证件信息的自动录入,并完成用户身份验证。应用于金融保险、社保、O2O等行业,有效控制业务风险

    合作案例: 叭叭速配 云白条

    内容审核与监管

    自动识别图片、视频中的文字内容,及时发现涉黄、涉暴、政治敏感、恶意广告等不合规内容,规避业务风险,大幅节约人工审核成本
     

    纸质文档票据电子化

    通过OCR实现纸质文档资料、票据、表格的自动识别和录入,减少人工录入成本,提高输入效率



    展开全文
  • android-ocr 光学字符识别技术

    千次阅读 热门讨论 2013-03-08 11:26:40
    因为工作需要,这两天一直在找实现OCR的android源码。。。各种碰壁各种纠结,各种红字各种报错!! 郁闷到爆。。。。   好吧,抱怨完毕,说说我的实现。   使用的是开源引擎 tesseract ,没有linux环境,直接...

    支持原创,转载请注明出处: http://blog.csdn.net/wuzhiqun27/article/details/8647224

     

    因为工作需要,这两天一直在找实现OCR的android源码。。。各种碰壁各种纠结,各种红字各种报错!! 郁闷到爆。。。。

     

    好吧,抱怨完毕,说说我的实现。

     

    使用的是开源引擎 tesseract ,没有linux环境,直接在某个源码里面挖到编译好的动态库(libs中)。

    下的源码太多,已经不记得是哪个网站上下的了,再次感谢各位前辈的共享,也因此觉得应该把自己的共享出来。

     

    先贴一下代码结构:

    我的工程代码结构

     

     

     

     

     

     

     

     

     

     

     其中前面两个包,com.googlecode.leptonica.android 和 com.googlecode.tesseract.android 是从官网下的tess-two的源码(官网网址https://github.com/rmtheis/tess-two),下载的压缩包中有三个文件夹,我们需要的源码在tess-two文件夹下 。

    之前有用过网上下的tess-two的jar包(tess-two.tesseract3.01-leptonica1.68-LibJPEG6b.jar),里面的代码版本不够,运行时会报错,果断去官网,直接下源码,于是乎,就找到了上面的tess-two源码,直接放到工程里,OK,运行正常!!

     

    当前识别的图片路径为/mnt/sdcard/test5.jpg。 当前语言包的存放路径为/mnt/sdcard/tesseract/tessdata/。引擎为第三版本,可识别第三版本的语言包,支持中文识别。语言包需自行下载,中文包(chi_sim.traineddata.gz),英文包(eng.traineddata.gz),解压后放入上述文件夹。目前使用的是中文语言包,要更改语言包请到代码中自行更改。

     

    最后附上源码下载地址: http://download.csdn.net/detail/wuzhiqun27/5120148

     

    中文简体语言包下载地址: http://download.csdn.net/detail/wuzhiqun27/5120324

     

    英文语言包下载地址: http://download.csdn.net/detail/wuzhiqun27/5120547

     

    更多语言包下载地址: http://code.google.com/p/tesseract-ocr/downloads/list

    展开全文
  • 本文将演示如何使用光学字符识别技术,识别信用卡上的卡号。 OCR技术是光学字符识别的缩写(Optical Character Recognition), 是通过扫描等光学输入方式将各种文字转化为图像信息, 再利用文字识别技术将图像信息...

    目录:[Swift]Xcode实际操作

    本文将演示如何使用光学字符识别技术,识别信用卡上的卡号。

    OCR技术是光学字符识别的缩写(Optical Character Recognition),

    是通过扫描等光学输入方式将各种文字转化为图像信息,

    再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。

    首先在浏览器的地址栏输入需要下载的第三方类库:card.io-iOS-SDK

    将解压后的文件夹【CardIO】拖动到项目【DemoApp】中,

    保持选项的默认设置,点击【Finish】完成文件夹的添加。

    【CardIO】文件夹主要包含了三个库文件和一些头文件。

    点击项目名称【DemoApp】,打开项目信息面板。

    进入【Build Settings】编译设置面板。

    在右上角搜索输入框内输入需要搜索的关键词:【Other Linker Flags】。

    找到所需的选项后,在右侧双击弹出设置框。

    在弹出的面板中,点击弹出面板左下角的【+】图标,进入文字输入状态。

    然后输入链接器参数:【-lc++】

    链接器做的事,就是把目标文件和所用的一些库链接在一起,形成一个完整的可执行文件。

    从代码到可执行文件经历的步骤是:

    【源代码】->【预处理器】->【编译器】->【汇编器】->【机器码】->【链接器】->【可执行文件】

    点击弹出面板左下角的【+】图标,再添加一个输入链接器参数:【-ObjC】

    添加了链接器参数:【-ObjC】后,链接器就会把静态库中所有的OC类和分类,都加载到最后的可执行文件中。

    在链接器设置面板外部点击,完成参数的设置。

    进入【Build Phases】编译阶段设置面板。

    在【Link Binary With Libraries】选项中,点击【+】往项目中添加需要用到的五个框架。

    在弹出窗口顶部的搜索框内,输入待添加的框架的名称:

    【Accelerate.framework】:在框架名称上双击,引入该框架

    【AVFoundation.framework】:在框架名称上双击,引入该框架

    【AudioToolbox.framework】:在框架名称上双击,引入该框架

    【CoreMedia.framework】:在框架名称上双击,引入该框架

    【MobileCoreServices.framework】:在框架名称上双击,引入该框架

    进入【Build Settings】编译设置面板。

    在右上角搜索输入框内输入需要搜索的关键词:【Enable Modules】。

    【Enable Modules】属性在默认情况下已经激活,如果没有激活的话,请把它调整为激活状态。

    在右上角搜索输入框内输入需要搜索的关键词:【Link Frameworks Automatically】。

    【Link Frameworks Automatically】属性在默认情况下已经激活,如果没有激活的话,请把它调整为激活状态。

    在【CardIO】文件夹上点击鼠标右键,弹出右键菜单。

    要在代码中调用文字识别框架的OC头文件,需要往项目中添加一个桥接头文件。

    【New File】->【Header File】->【Next】->【Save As】:CardIO-Swift-Bridging-Header.h->【Create】

    在桥接头文件【CardIO-Swift-Bridging-Header.h】中引入需要用到的头文件。

     1 #ifndef CardIO_Swift_Bridging_Header_h
     2 #define CardIO_Swift_Bridging_Header_h
     3 
     4 #import "CardIO.h"
     5 //在桥接头文件中引入需要用到的头文件。
     6 @import AudioToolbox;
     7 @import AVFoundation;
     8 @import CoreMedia;
     9 @import CoreVideo;
    10 @import MobileCoreServices;
    11 
    12 #endif /* CardIO_Swift_Bridging_Header_h */

    然后点击项目名称【DemoApp】,进入项目属性设置面板,确保桥接头文件,已经被项目所引用。

    进入【Build Settings】编译设置面板。

    在右上角搜索输入框内输入需要搜索的关键词:【Bridging Header】。

    然后在【Objective-C Bridging Header】文件属性右侧双击,弹出桥接头文件属性设置面板。

    接着输入桥接文件,在项目中的存储路径:DemoApp/CardIO/CardIO-Swift-Bridging-Header.h

    在项目导航区,打开视图控制器的代码文件【ViewController.swift】

    准备工作已经全部完成,现在开始编写代码,实现识别卡号的功能。

     1 import UIKit
     2 
     3 //首先导入需要用到的代理协议CardIOPaymentViewControllerDelegate
     4 //它将完成信用卡卡号识别的主要功能
     5 class ViewController: UIViewController, CardIOPaymentViewControllerDelegate {
     6     
     7     override func viewDidLoad() {
     8         super.viewDidLoad()
     9         // Do any additional setup after loading the view, typically from a nib.
    10         //当调用卡号识别的视图控制器时,因为需要加载各种资源,
    11         //所以比较耗费时间,可能会出现卡顿现象。
    12         //这里在调用前,进行一次预加载,以避免卡顿现象。
    13         CardIOUtilities.preload()
    14         
    15         //创建一个按钮对象,当点击该按钮时,弹出卡号识别的视图控制器,
    16         //在该视图控制器中,进行卡号识别的主要工作。
    17         let button = UIButton(frame: CGRect(x: 40, y: 80, width: 240, height: 40))
    18         //设置按钮标题文字
    19         button.setTitle("Scan Card", for: .normal)
    20         //设置按钮背景颜色
    21         button.backgroundColor = UIColor.brown
    22         //给按钮绑定点击事件
    23         button.addTarget(self, action: #selector(ViewController.scanCard(_:)), for: UIControl.Event.touchUpInside)
    24         
    25         //将按钮添加到当前视图控制器的根视图
    26         self.view.addSubview(button)
    27     }
    28     
    29     //添加一个方法,用来响应按钮的点击事件
    30     @objc func scanCard(_ sender: UIButton!)
    31     {
    32         //初始化卡号识别视图控制器
    33         let cardIOVC = CardIOPaymentViewController(paymentDelegate: self)
    34         //设置卡号识别视图控制器的展示样式
    35         cardIOVC?.modalPresentationStyle = .formSheet
    36         //以模态窗口的方式,显示卡号识别视图控制器
    37         present(cardIOVC!, animated: true, completion: nil)
    38     }
    39     
    40     //添加一个方法,用来响应用户取消识别的动作
    41     func userDidCancel(_ paymentViewController: CardIOPaymentViewController!)
    42     {
    43         //在控制台打印输出相关的日志
    44         print("user canceled")
    45         //并隐藏卡号识别视图控制器
    46         paymentViewController?.dismiss(animated: true, completion: nil)
    47     }
    48     
    49     //添加另一个代理方法,用来响应用户点击完成按钮的事件
    50     func userDidProvide(_ cardInfo: CardIOCreditCardInfo!, in paymentViewController: CardIOPaymentViewController!)
    51     {
    52         //创建一个字符串常量,用来存储识别到的信用卡的所有信息
    53         if let info = cardInfo
    54         {
    55             let str = NSString(format: "Received card info.\n Number: %@\n expiry: %02lu/%lu\n cvv: %@.",
    56              info.cardNumber, 
    57              info.expiryMonth, 
    58              info.expiryYear, 
    59              info.cvv)
    60 
    61             //在控制台打印输出所有信息
    62             print(str)
    63         }
    64         //同时隐藏卡号识别视图控制器
    65         paymentViewController?.dismiss(animated: true, completion: nil)
    66     }
    67 }

    然后点击【DemoApp/IPhone】模拟器名称,弹出模拟器列表,在弹出的模拟器列表中,选择真机选项,该项目需要在真机设备上进行测试。

    转载于:https://www.cnblogs.com/strengthen/p/10053869.html

    展开全文
  • Office 2010 OCR 光学字符识别技术

    千次阅读 2010-06-29 18:03:00
    Office 2010 里面自带OCR模块,也就是俗称的光学识别技术。 这个模块被直接放到了OneNote里面,用法很简单。 1 把图片插入到note里面 2 右键选择使图像中的文本可搜索-中文(中国) 3 右键选择“复制...

    Office 2010 里面自带OCR模块,也就是俗称的光学识别技术。

    这个模块被直接放到了OneNote里面,用法很简单。

    1 把图片插入到note里面

    2 右键选择使图像中的文本可搜索-中文(中国)

    3 右键选择“复制图片中的文本”

    OK

    识别率非常高啊~

    但是不要把太大的图片放过来,好像有问题,解析不到。

    建议局部复制过来,然后识别

     

    展开全文
  • OCR 光学字符识别

    2017-04-08 09:56:13
    OCR 图片识别字符 OCR 光学字符识别(Optical Character Recognition)
  • miniocr光学字符识别

    2010-01-02 09:52:52
    miniocr光学字符识别 小软件非常好用。
  • OCR光学字符识别

    千次阅读 2018-09-20 09:46:12
    1. 创建训练文件,将文字图像与文字分类标识关联,保存到训练文件中,训练文件后缀名为trf,主要用到函数为append_ocr_trainf。  2. 训练OCR分类器,Halcon支持BOX分类器、神经网络分类器(MLP)和支持向量机分类器...
  • 答疑解惑:移动端车牌识别与OCR光学字符识别有何联系? 移动端车牌识别技术隶属于OCR(光学字符识别技术)的基础上研发的用来识别汽车号牌特征信息的图像识别技术。 一、什么是移动端车牌识别? 移动端车牌识别(利用...
  • 纸张在许多地方已日益失宠,无纸化办公谈论40多年,...为了访问基于纸张的信息和将信息整合进数字工作流, 光学字符识别(OCR)技术至关重要。选择正确的OCR工具要基于特定需求而定,例如在线OCR服务对某些人有用,但可
  • OCR 光学字符识别程序

    2014-03-25 15:59:43
    原来HP的OCR项目,现在托管与GOOGLE的开源项目,开发环境为VS2008.
  • Ocrad.js – JS 实现 OCR 光学字符识别

    千次阅读 2019-10-04 10:06:08
    Ocrad.js 相当于是 Ocrad 项目的纯 JavaScript 版本,使用 Emscripten 自动转换。这是一个简单的 OCR光学字符识别)程序,可以扫描图像中的文字回文本。 ...
  • OCR光学字符识别(一)

    千次阅读 2017-08-07 16:23:26
     所谓OCR (Optical Character Recognition光学字符识别技术,是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;...
  • 开源OCR光学字符识别

    2015-08-16 00:04:00
    纸张在 许多地方已日益失宠,无纸化办公谈论40多年,...为了访问基于纸张的信息和将信息整合进数字工作流, 光学字符识别(OCR)技术至关重要。选择正确的OCR工具要基于特定需求而定,例如在线OCR服务对某些人有用,但...
  • 在 UWP 里面可以很方便通过 Windows.Media.Ocr.OcrEngine 识别图片的字符,其实老周有写过这一篇技术博客,今天有小伙伴在问如何实现,我还以为老周的博客过时了,于是重新复制老周的代码跑了一次,然后就通过了 ...
  • OCR:光学字符识别技术

    2010-06-09 10:47:00
    OCR:光学字符识别技术  所谓OCR (Optical Character Recognition光学字符识别)技术,是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译...
  • 使用 OCR光学字符识别)识别图像中的字符https://youtu.be/Ns0gigWsijE
  • 识别分析: 图片是二维的数组 图片原始数据 plt.imread('./digits/0/0_1.bmp') array([[255, 255, 255, 255], [255, 255, 255, 255]], dtype=uint8) 可以看出是一个二维数据, 但根据实际情况每行样本的列并...
  • 参考这里 CLiDE Pro Chem OCR OSRA Imago
  • OCR光学字符识别

    千次阅读 2019-03-26 10:44:15
    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。 最近对...
  • Tesseract 原本由惠普开发的图像识别类库...Ocropus的(TM)是一个先进的文件分析和OCR系统,采用可插入的布局分析,可插入的字符识别,自然语言统计建模和多语言支持功能。 Cuneiform Cuneiform 是一个 OCR 文...
  • DBNet算法:是一种基于分割的文字检测算法,创新点主要在于它能够自适应图像场景从而完成文字区域的精准检测。...OCR常用文字识别算法:CRNN、CTPN等 参考链接:https://www.jianshu.com/p/efb23838264d
  • 有windows安装程序包,安装即可用,开源免费。cmd中可立即调用 github:https://github.com/tesseract-ocr/tesseract
  • DL之CNN:利用CNN(keras, CTC loss)算法实现OCR光学字符识别 目录 输出结果 实现的全部代码 输出结果 更新…… 实现的全部代码 部分代码源自:GitHubhttps://raw....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,883
精华内容 2,353
关键字:

ocr光学字符识别技术