银行卡卡号识别:C#版本和iOS版本

(一)图像采集

首先我们要取得待识别的图像。这项工作可以通过数码相机、DV机、工业摄像机、电脑数字摄像头、手机摄像头等设备采集,并从中取得我们要分析的图像信息。

(二)版面分析

取得图像信息后,要对图像整体版面进行分析。这一步工作如果使用通用算法进行分析,则效率很低。通常情况下都需要针对不同的识别对象进行专门的分析及设定,才能取得良好的分析效果。

抠出数字????

倾斜图像校正??

http://www.doc88.com/p-34555054276.html

(三)图像灰度化

从采集设备里取得的图像通常都是彩色图像,为了使所分析的图像数据简化,并且不丢失关键信息,需要对图像进行灰度化处理。

  通常,计算机图像是由一个一个的像素点构成(矢量图除外),每个像素点用RGB模型来标记其颜色。在RGB模型中,如果R=G=B时,则该颜色就表示是一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。

  一般有以下四种方法对彩色图像进行灰度化:

  1、分量法。将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。

  计算公式为:f1(i,j)=R(i,j) f2(i,j)=G(i,j)f3(i,j)=B(i,j)  其中fk(i,j)(k=1,2,3)为转换后的灰度图像在(i,j)处的灰度值。

  2、最大值法。将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

  计算公式为:f(i,j)=max(R(i,j),G(i,j),B(i,j))

  3、平均值法。将彩色图像中的三分量亮度求平均得到一个灰度值。

  计算公式为:f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3

  4、加权平均法:根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像:f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))。

在进行识别时,通常采取第4种方法加权平均法对彩色图像进行灰度化。

(四)图像二值化

灰度化是压缩图像数据的第一步,接下来要对灰度图像进行二值化处理。具体做法就是,首先对256个亮度等级的灰度图像进行计算,取得一个适当的阈值;其次对灰度化图像进行处理,所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值用255表示,否则这些像素点被排除在物体区域以外,灰度值为0,代表背景或者例外的物体区域。
  完成这一步骤之后,灰度化图像被进一步压缩为二值化图像,每一像素点非黑即白,没有其他任何颜色。只要阈值选取合适,二值化图像仍然可以反映图像整体和局部特征,有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。

上述网址:http://dongtingyueh.blog.163.com/blog/static/4619453201292984842752/

上述网址:http://blog.chinaunix.net/uid-20074343-id-1736180.html

代码参考网站:http://blog.csdn.net/baidu_31981559/article/details/51462426

(五)图块切割

经过了前面的灰度化及二值化后,彩色图像被压缩为黑白二色图像。这时就要进行一个关键操作,就是图块切割。

至此,所有字符的上下左右四个边界全部得到,那么这四条边界线围起来的图像区域,就是我们要切割的小图块。

代码参考:http://bbs.csdn.net/topics/392009365?list=lz

EmguCV入门指南-中文翻译版:

http://wenku.baidu.com/view/d4217a62af1ffc4ffe47ac27.html

(六)字符识别

将每个小图块依次送入这一环节进行字符识别,就可以得到最终结果。

这一环节的字符识别运算包含两个步骤。

一是归一化。归一化的目的是将所有小图块转换为相同大小的图像。前面说了,字符宽度只是近似相同,并不一定完全相同。可以比较明显的看出来,数字“1”比数字“0”或“8”要窄的多,所以为了能够使用模板进行统一匹配,需要将每个字符图块转换为相同大小。

二是模板匹配。既然是用模板匹配技术来实现图像和字符的匹配,那么首先得有模板。每个字符就是一个模板。

通过提取的特征值,识别的算法有很多,包括分类器算法,模板匹配算法,基于概率统计的Bayes分类器算法,聚类分析算法等。

Emgucv参考文献:

http://wenku.baidu.com/link?url=57aywD0Q6WTnl7XKbIHuEwWENnSuPS32QO8X0a0gHpOOzdnNt_K0mK2cucVaEHVSQ0XJ69MpAe0I6UXwozEQaEMAAQsWXHP4w-Ly_xjW4sm

 

tesseract-ocr 实现图片识别功能

http://www.52itstyle.com/thread-4803-1-1.html

代码部分:

C#版本:链接:http://pan.baidu.com/s/1dE1CfXB 密码:dlqf

iOS版本:链接:http://pan.baidu.com/s/1slNiAOt 密码:dvjh

时间: 2024-10-25 22:30:59

银行卡卡号识别:C#版本和iOS版本的相关文章

C#:根据银行卡卡号推断银行名称

原文:C#:根据银行卡卡号推断银行名称 原文地址:android 根据银行卡卡号判断银行 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,不足之处请多多包涵. 根据银行卡号判断所属银行,依据是卡号的前6位数,称之为bin号. 我们把bin号转化为长整形,再把各个银行卡的bin号做成有序表.通过二分查找的方法,找到bin号在有序表的位置,然后读出银行卡的信息. 1.创建项目:BankInfoDemo(控制台应用程序) 2.新建类:BankInfo.cs 1 /// <summar

C#:根据银行卡卡号判断银行名称

原文地址:android 根据银行卡卡号判断银行 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,不足之处请多多包涵. 根据银行卡号判断所属银行,依据是卡号的前6位数,称之为bin号. 我们把bin号转化为长整形,再把各个银行卡的bin号做成有序表.通过二分查找的方法,找到bin号在有序表的位置,然后读出银行卡的信息. 1.创建项目:BankInfoDemo(控制台应用程序) 2.新建类:BankInfo.cs 1 /// <summary> 2 /// 银行信息 3 ///

判断银行卡卡号输入的合法性接口

// 判断银行卡卡号输入的合法性 //参数:输入银行卡号,判断银行卡号是否为合法的银行卡卡号(YES 为合法) - (BOOL) checkCardNo:(NSString*) cardNo;  判断银行卡卡号输入的合法性接口 #pragma mark ---——————————————————————————判断银行卡卡号输入的合法性---—————————————————————————— - (BOOL) checkCardNo:(NSString*) cardNo{ int oddsum

拍照识别银行卡卡号

#import "ViewController.h" #import "CardIO.h" @interface ViewController ()<CardIOPaymentViewControllerDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIButton * btn = [UIButton buttonWithT

银行卡卡号验证

<html> <head> <script type="text/javascript">     function checkLen(x,y) { if(y.length==x.maxLength) { var next = x.tabIndex; if(next<document.getElementById("bank").length) { document.getElementById("bank&quo

银行卡卡号判断

- (BOOL) checkCardNo:(NSString*) cardNo{ int oddsum = 0; //奇数求和 int evensum = 0; //偶数求和 int allsum = 0; int cardNoLength = (int)[cardNo length]; int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue]; cardNo = [cardNo substringToIndex:ca

车架号识别,Vin码识别,OCR识别,独树旗帜的译图

OCR车架号识别技术 北京译图智讯科技有限公司OCR识别系统,是我们结合多年OCR文字识别经验,针对移动互联网数据采集业务推出的一款专业的OCR SDK,程序适用于iOS与Android两个平台集成,而且全国仅有一家支持服务器端集成,适合各种行业由人工输入方式转化为摄像头OCR识别模式自动扫描录入,可以与各种业务系统.作业流程进行捆绑集成,将企业信息化提高到更高的智能水平. 车架号识别特点 1.逐条采集数据,视频流自动获取最佳帧图像OCR识别,无需点击拍照按钮: 2.可根据客户需求自定义模板OC

Vin码识别(车架号识别),评估二手车必备软件

近几年,中国汽车市场飞速发展并逐步成熟.据业内预测,2008进入换车元年,二手车市场2008年也驶入高速发展的轨道. 我国二手车市场日渐活跃. 随着二手车市场交易的日渐活跃,用户的购买和置换需求不断增加.据统计,2006年,全国二手车交易量为190.59万辆,同比增长31.5%;2007年1至10月,二手车销量为179.46万辆.2004年,我国新.旧车交易量比是6:1:2008年,我国的新.旧车交易量比达到7:3.而随着二手车的增多,越来越多的二手车在线评估平台上线了,评估就得需要凭车辆的身份

Vin码识别/车架号识别为APP功能增添亮点

Vin码识别/车架号识别,顾名思义,就是识别车辆的Vin码,也就是做车架号解析,Vin码识别/车架号识别利用的是ocr识别技术,支持视频流获取图像,自动触发识别,另Vin码识别/车架号识别sdk支持安卓和ios主流操作平台,便于集成,一般三五个钟,就能把识别核心集成到app里面. Vin码(Vehicle Identification Number)车架号,作为车辆的身份证,具有唯一性,不可重复性,属于独一无二的应用.从Vin码里可以解读出车辆的很多信息:像发动机型号.生产厂商.生产日期.组装地