APP下载

基于MATLAB的身份证号识别

2016-03-21姜富宽

移动信息 2016年9期

姜富宽



基于MATLAB的身份证号识别

姜富宽1,2

1.天津职业技术师范大学,天津 300222 2.驻马店技师学院,河南 驻马店 463000

对身份证进行自动识别与手工录入相比较,能够有效提高工作效率。以居民身份证为研究对象,从身份证图像中提取身份证号码数字0~9的空间分布特征和结构特征,应用Matlab软件结合模板匹配法实现对身份证号码进行快速识别。

Matlab;身份证号; 字符识别

1 总体设计方案

由于我国第二代身份证是彩色的,而且是大小固定的,身份证右下方有18位号码,字体类型是OCR-B10BT。基于以上这些特点,进行身份证图像采集、图像预处理、定位、字符分割、字符识别等过程最后输出身份证号码[1]。

2 图像采集

身份正号的提取和识别,使用图像处理的方法进行提取。首先需要做的是,采集获取高质量的身份证图像信息,考虑到现在的第二代身份证是彩色的,所以推荐使用彩色的CCD相机采集获取图像。将身份证,放置在黑色背景的平板桌边上面,进行采集,并且光照尽量均匀。这样方便后续的处理。将采集到的身份证图像保存至C:UserscarrothsDesktop。命名为1.jpg。

3 图像预处理

3.1 载入图像

R=imread('C:UsersadminDesktopmatlab图片1.jpg');

figure(1);

imshow(R);title('图像载入');将待识别身份证的原图显示出来。

3.2 将彩色图像转换为灰度图并绘制直方图

I1=rgb2gray(R);

figure(2);

subplot(1,2,1);imshow(I1);title('灰度图');

figure(2);

subplot(1,2,2);imhist(I1);title('灰度直方图');灰度图与绘制的灰度直方图如图1所示。

图1 灰度图与绘制的灰度直方图。

3.3 用roberts算子进行边缘检测和腐蚀操作

I2=edge(I1,'roberts',0.08,'both');

figure(3);imshow(I2);title('roberts算子边缘检测');

se=[1;1;1];

I3=imerode(I2,se);

figure(4);imshow(I3);title('图像腐蚀操作');

3.4 平滑图像及删除二值图像的小对象

se=strel('rectangle',[40,40]);

I4=imclose(I3,se);

figure(5);imshow(I4);title('平滑图像');

I5=bwareaopen(I4,2000);

figure(6);imshow(I5);title('删除二值图像的小对象');……

登录APP查看全文