基于MATLAB的身份证号码识别系统

题目:基于MATLAB的身份证号码识别系统

  • 课题介绍

本课题为基于连通域分割和模板匹配的二代居民身份证号码识别系统,带有一个GUI人机交互界面。可以识别数十张身份证图片。

首先从身份证图像上获取0~9和X共十一个号码字符的样本图像作为后续识别的字符库样本,其次将待测身份证图像进行去噪、灰度化、二值化、水平投影切割,垂直投影并切割,将待测身份证号码分割出来,然后进行待测号码图片与字符库样本对比计算、识别判断、最终确定待测身份证号号码。本设计关于身份证号码的识别是基于Matlab软件的基础上进行的。

  • 算法流程
  1. 输入身份证图片;2、根据几何信息定位身份证号码位置并且切割;3、利用连通域算法切割字符;4、利用模板匹配算法进行识别

  • GUI界面设计

四、运行预期ps图

五、源码

1、打开图像

[FileName,PathName] = uigetfile('*.jpg','Select an image');

if PathName~=0

    str = [PathName,FileName];

    T=imread(str);

    axes(handles.axes1);

    imshow(T);

end

  1. 预处理

[m,n,r]=size(I);%图像的像素为width*height

%%%%%蓝色字体变黑

myI=double(I);

for i=1:m

    for j=1:n

            if((myI(i,j,1)>=15)&&(myI(i,j,1)<=130)&&((myI(i,j,2)<=165)&&(myI(i,j,2)>=90))&&((myI(i,j,3)<=220)&&(myI(i,j,3)>=135))) % 蓝色RGB的灰度范围

              I(i,j,1)=40; %红色分量

              I(i,j,2)=40; %绿色分量

                         end  

    end       

end

%figure, imshow(I);title('变色后的图像');

width=round(0.9*n);height=round(0.87*m);

rx=round(0.05*n);cy=round(0.075*m);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值