首页 > 其他 > 详细

银行卡号识别(一) --- 预处理

时间:2015-12-04 02:04:15      阅读:398      评论:0      收藏:0      [点我收藏+]

????? 受到微信钱包的启发,现在决心做一个类似的东东来玩一玩? --------------? 银行卡号识别

????? 凡事要循序渐进,本次我们先来探讨静态银行卡号的识别,识别的方法有很多,那么在识别之前往往还有很多预处理的工作要做,接下来我将一一介绍。
??????????目标图片????????????????? bubuko.com,布布扣
?

一、灰度图像

?????????我们将图像导入后,往往是三通道的RGB图像,这样的话计算量将非常的庞大,给识别带来了不必要的麻烦,所以,我们首先将图像转成灰度图像:
?????????????????????????????? bubuko.com,布布扣

?

二、二值化处理

???? 在转变成了灰度图像之后,为了进一步减小图像的复杂度,我们对图像进行二值化处理(这里根据图片的实际情况设定阈值,此时为28):

????????????????????????????? ??? cvThreshold(temp, binary, 28, 255, CV_THRESH_BINARY);

得到:
??????????????????????????????????bubuko.com,布布扣

?

三、图像腐蚀

????? 为了使图像中的数字部分更加的明显,我们采用图形学中的腐蚀对图片中的数字部分进行膨胀!这里要注意,腐蚀是对亮度高的而言,所以对于亮度低的数字来说,腐蚀处理即为膨胀处理,采用默认的3*3模板腐蚀一次即可,看具体情况适当调整。

??????????????? ??????????????????????????????????? ?cvErode(binary, erode, NULL, 1);

得到:
??????????????????????????????????????bubuko.com,布布扣

?

四、数字分割
????????在运用机器学习算法之前,我们需要把一个一个的数字分割开来,这里我们采用寻找轮廓,得到相应的外包矩形区域,在进行简单的筛选得到每个数字的区域。


?//寻找轮廓来分割数字
?IplImage *imgContour = cvCreateImage(cvGetSize(img), 8, 1);;
?cvCopy(erode, imgContour);
?CvSeq *contour;
?CvMemStorage *storage = cvCreateMemStorage(0);
??? cvFindContours(imgContour, storage, &contour, sizeof(CvContour),CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
?//cout << a;
??? for( ; contour != NULL; contour = contour -> h_next )
??? {
???? CvRect rect = cvBoundingRect( contour, 0 );
??cout << rect.width * rect.height << endl;
??if(rect.width * rect.height > 1000 && rect.width * rect.height <1800)
???cvRectangle( erode, cvPoint( rect.x?, rect.y ),cvPoint( rect.x + rect.width, rect.y + rect.height ), cvScalar(0,0,0), 0 );
? }
?

注意:这里cvFindContours函数会对图片进行改动,所以要用另一张图来进行cvFindContours处理,再在另一张图想画出外包矩形区域来。

数字框一般大小有限制,我设定矩形框的面积范围来筛选出每个数字出来,得到以下结果:
??????????????????????????????? bubuko.com,布布扣

?

结果评价:? 分割的效果不是特别理想,除了数字外还有部分区域没有处理掉,会给识别带来难度;下面的数字我们也需要想办法消除;第二个数字分割效果不佳。

?

这些问题我将在后面进一步改进!

?

(待续)
?


?
?

银行卡号识别(一) --- 预处理

原文:http://lps-683.iteye.com/blog/2261576

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!