目录
概括
本文主要介绍一种基于MATLAB数字图像处理的图像识别技术的方法,以识别ID卡原始图像中的序列号标记。该系统使用图像预处理,图像定位,图像校正和最终输出结果。在系统调试阶段kaiyun全站网页版登录,根据遇到的错误立即调整原始系统,最后获得了相对稳定,有效的ID卡序列号快速识别系统。
关键字MATLAB数字图像识别ID卡序列号
1。设计目的和任务
图像信息是人类获得的主要信息来源。在现代科学研究,工业生产和军事技术等各个领域,人们越来越多地使用图像信息来理解和判断事物并解决实际问题。因此,图像信息的获取和处理尤其重要。尤其是在当今科学技术快速发展的时代,提出了更高的要求,以便更快,准确,可靠地获得有用的信息[1]。
图像处理技术基本上可以分为两类:模拟图像处理(模拟图像处理)和数字图像处理(数字图像处理)。数字图像处理是指将图像信号转换为数字信号并使用计算机处理它们的过程。数字图像处理技术主要包括以下内容:几何处理,算术处理,图像增强,图像修复,图像重建,图像编码,图像识别,图像理解。数字图像处理技术的开发涉及信息科学,计算机科学,数学,物理学和生物学等学科。因此,数学和相关的边际学科对图像处理科学的发展产生了越来越重要的影响。近年来,数字图像处理技术已经变得越来越成熟,并且已在许多领域中广泛使用kaiyun.ccm,例如太空检测,遥感,生物医学,人工智能和工业检测,并促使这些学科的新发展[2]。
自1980年代中期推出以来,MATLAB软件已不断吸收由权威人员在各种学科和领域编写的实用程序。经过多年的发展和改进,它现在已成为国际认可和最佳科学计算和数学应用程序软件之一。它集成了数值分析,矩阵计算,信号处理和图形显示,形成了方便且友好的用户环境。这是一种视觉技术计算软件,近年来在国内外广受欢迎[3],并且还为数字图像处理技术的研究带来了快速发展。
本文主要选择基于MATLAB的数字图像处理中的图像识别功能进行课程设计。通过对系统的调试和学习,我们可以掌握MATLAB数字图像处理技术的基本知识和基本编程方法。图像识别是指定量描述图像中各种对象并对提取的靶物质进行一定的定量分析后提取所需的目标物质。为了实现这一目标,实际上是为了了解图像内容并确定特定目标。因此,其核心是根据目标对象的特征来完成图像的面积分割,并获得所需目标所在的局部区域[4]。本文基于MATLAB程序,预计将快速找到和图像识别身份证序列号。
近年来,图像处理技术和模式识别技术的开发已经越来越成熟,并且各种文档的识别已越来越广泛地在人们的生活中广泛使用,并且ID号的自动识别技术也出现了[5]。它可以自动化并加快ID号的进入,提高工作效率并大大降低人工。此外,随着计算机技术的开发,我们还可以管理获得的数据,从而使信息的查询和管理越来越快,并为ID卡自动识别技术的普及提供了先决条件。可以看出,身份照明的自动识别具有重要的实际意义和广泛的应用前景,而不是手动输入。
ID卡号识别算法主要用于第二代ID卡验证过程中的验证系统中,而处理的主要对象基本上是二维图像。在身份证的制造过程中,一些问题是不可避免的。通过检测身份证编号,记录了合格和不合格的ID卡,并进行了进一步的处理。通过机器识别身份证号,不仅可以降低大量的体力劳动,而且还可以大大提高工作效率。
2。设计的内容
学习MATLAB编程,然后使用MATLAB功能来设计和实现ID号标识系统。 ID卡号码标识系统的基本工作原理是:输入不同通道获得的ID卡图像进行预处理,然后搜索,检测和定位ID卡序列号,并将包含ID卡序列号的矩形区域分开,以实现序列号的快速识别。


















由于图像识别技术已经在静态车牌图像识别中开发和完善,因此本文还指车牌图像识别中的相关材料和其他参考书。该系统可以在Windows XP,Windows 7和其他操作系统下运行,并且在调试程序时使用MATLAB R2013B。系统中使用的特定功能模块和功能的工作原理,实现方法和渲染图在下一节中逐步解释。
设计的实施
1。加载原始图像
在系统调试过程中,从百度图片获得了原始图像的获取。在随后的系统测试过程中,直接扫描的图像作为原始图像添加,以验证系统的稳定性和均匀性。
>> i = imread('1.jpg');
图(1),Imshow(i);
标题(“原始图像”);%显示ID卡的原始图像,并添加标题“原始图像”。
结果如下:

图1身份证的原始图像
2。将颜色图表转换为灰度图表并绘制直方图
在数字图像处理中,灰度直方图是最简单,最有用的工具,而直方图表示的信息是每个亮度的像素数量。直方图是图像的重要特征,因为它们的图表可以用少量数据表达图像的灰度统计特征。在[0,L-1]范围内具有灰度级别的数字图像的直方图是一个离散函数:

(其中n是图像中的像素的总数; nk是图像中KTH灰度级别中的像素的总数; rk是kth灰度级别,k = 0,1,2,…,L-1)
具体程序如下:
>> i1 = rgb2gray(i);%转换RGB图将其转换为灰度图
图(4),子图(1,2,1),Imshow(I1);
标题(“灰度”);%绘制灰度地图
图(4),子图(1,2,2),IMHIST(I1);
标题('灰度直方图');%绘制灰度图的直方图
结果如下:

图2灰度直方图
3。原始图像的几何变换
由于ID卡序列号已固定在图像的右下角,因此为了更好地操作并有效地处理模式,首先将序列号切成原始图像中,并剪切并放大原始图像。 (在系统完成后测试代码时,发现不同采样图像的原始大小是不同的。用于调试以下代码的原始图像大小为[475,225],因此其他采样图像可以压缩到相同的大小。因此,该系统中的剪贴画选择区域是通用的。
3.1图像切割
在MATLAB中,使用功能IMCROP实现图像剪辑操作。该操作在图像中切断了矩形子图。用户可以通过参数指定矩形四个顶点的坐标,也可以与鼠标进行交互选择矩形。
具体程序如下:
>> i2 = imcrop(i,[180,300,480,180]);%在特定区域内裁剪图像
图(2); imshow(i2);
标题(“裁剪图像”);%显示图像云开·全站体育app登录,称为“裁剪图像”
结果如下:

图3:切割原始图像后的图像
3.2图像放大
原始图像被放大以进行后处理和有效的识别。在MATLAB中,该功能可用于实现图像的缩放。可以使用最近的邻居值,双线性插值和双丝插值方法。其中,直接分配是最接近其的像素灰度值,称为最近的邻居插值方法。该方法的主要特征是简单的计算量,但扩增效果差,这可能会导致镶嵌现象。相应像素点的灰度值是通过数学插值算法计算得出的。该方法具有良好的处理效果,但是计算的量将增加。本文使用双线性插值方法进行放大操作。
具体程序如下:
>> i3 = imresize(i2,2,'bilinea');%bilinea'在切割后将图像放大2次
>>图(3); imshow(i3);
>>标题(“双线性插值图像”);
结果如下:

图4双线性插值图像
4。边缘检测
图像的边缘是指周围像素急剧变化的那些像素的集合,这是图像的最基本特征。边缘存在于目标,背景和区域之间,因此它是图像分割依赖的最重要的基础。由于边缘是位置的迹象,并且对灰度变化不敏感,因此边缘也是图像匹配的重要特征。
边缘检测的基本思想是首先检测图像中的边缘点,然后根据某种形成分段区域的策略将边缘点连接到轮廓中。由于边缘是目标与要提取的背景之间的分界线,因此可以提取边缘以区分目标和背景,边缘检测对于数字图像处理非常重要。
一阶微分边缘运算符也称为梯度边缘运算符。它使用边缘图像的步长,即图像梯度的特征,在边缘处获得最大值以进行边缘检测。本文使用SOBEL操作员进行边缘检测。
具体程序如下:
>> i4 = edge(i3,'sobel');%使用SOBEL操作员进行边缘检测
图(5),Imshow(i4);
title('Sobel Operator Edge检测图像');
结果如下:

图5 SOBEL操作员边缘检测图像
5。图像腐蚀
腐蚀操作是形态加工的基础。腐蚀意味着检测具有一定形状(即,原始或结构元素)的图像,以找到可以放置在图像中的原始区域。腐蚀过程等于二进制图像中的“缩小”或“精炼”对象,MATLAB中的Imerode函数用于实现腐蚀操作。
具体程序如下:
SE = [1; 1; 1];%选择结构元件矩阵
i5 = imerode(i4,se);%在图像上执行腐蚀操作,即扩展反向操作
图(6),imshow(i5);%显示图6
标题(“腐蚀操作”);%名称图像“腐蚀操作”
结果如下:

图6腐蚀操作后的图像
6。光滑的图像
在获取和传输任何原始图像的过程中,它将被各种噪音所打扰,这将降低图像质量,模糊图像并淹没特征,这不利于图像分析。为抑制噪声和提高图像质量而执行的处理称为图像平滑或变质。图像平滑是指用于突出显示大面积,低频组件,图像的主要部分或抑制图像噪声和干扰高频组件的图像处理方法,以平滑并逐渐改变图像的亮度,减少突变梯度的亮度,并提高图像质量。图像平滑可以在空间域和频域中执行。本文使用Imclose函数来平滑图像。 Imclose在图像上实施了封闭的操作,并且封闭的操作也可以平滑图像的轮廓。但是,与开放操作相反,它通常结合狭窄的缺口和细长的弯曲,清除小孔并填补轮廓的空白。
具体程序如下:
>> se = strel('矩形',[25,25]);%构建结构元素在正方形中构造se
i6 = imclose(i5,se);%图像平滑和填充图像
图(7),Imshow(i6);
标题(“平滑图像”);
结果如下:

图7平滑图像
7。删除二进制图像的小面积对象
MATLAB中的Bwareaopen函数用于删除比二进制图像BW中某个值小的区域的对象。调试后,此值位于此系统中。
具体程序如下:
>> i7 = bwareaopen(i6,1000);%以小于1000的灰色值删除零件
图(8),Imshow(i7);
标题(“删除小区域对象”); %显示过滤的图像,并命名为“删除小区域对象”
结果如下:

图8删除小区域对象
8。ID号定位
以下过程用于定位ID号并显示最终图像。有关相关程序,请参见注释。
具体程序如下:
>> [y,x,z] = size(i7);%返回i7每个维度的大小,并存储在x,y,z中
i8 = double(i7);%转换i7 to double Percipision
TIC%TIC代表定时的开始,TOC代表时间的结束
color_y =零(y,1);%生成y*1的零数组
对于i = 1:y
j = 1:x
如果(i8(i,j,1)== 1)
%如果在i8的图像为1中使用坐标的点值(i,j,1),也就是说,点是背景颜色,则将color_y i,1)的值添加到1
color_y(i,1)= color_y(i,1)+1;%背景颜色像素统计
结尾
结尾
结尾
[temp maxy] = max(color_y);%y方向序列号区域确定
%温度是向量color_y元素中的最大值,Maxy是该值的索引
py1 = maxy;
while((color_y(py1,1)> = 5)&&(py1> 1))
py1 = py1-1;
结尾
py2 = maxy;
while((color_y(py2,1)> = 5)&&(py2
py2 = py2+1;
结尾
iy = i3(py1:py2,:,::);
%线方向编号区域确定
color_x = zeros(1,x);%在x方向上进一步确定序列号面积
j = 1:x
对于i = py1:py2
如果(i8(i,j,1)== 1)
color_x(1,j)= color_x(1,j)+1;
结尾
结尾
结尾
px1 = 1;
while((color_x(1,px1)
px1 = px1+1;
结尾
px2 = x;
while((color_x(1,px2)PX1))
px2 = px2-1;
结尾
px1 = px1-1;%校正序列号面积
px2 = px2+1;
dw = i3(py1:py2-8,px1:px2,:);
t = toc;
图(9),imshow(iy),标题('此ID号是');%显示最终结果
最终ID号如下:

图9最终ID号
4。系统调试
使用不同的图像样品测试了该系统。
直接扫描身份证作为原始图像

直接运行系统后,我发现在屏幕截图操作过程中存在问题。所选区域不是序列号的位置。结果如下:

原因是扫描样本量为[804,1270],编程过程中选定的模式为[384,512],因此此处添加了压缩操作。
具体程序如下:
i0 = imread('2.jpg')
i = imresize(i0,[402,635])
i1 = rgb2gray(i);%将RGB图转换为灰度图
图(4),子图(1,2,1),Imshow(I1);
…………
将此程序添加到源代码并重新测试系统后,最终结果如下:

它证明系统运行良好,系统测试已经结束。
参考Liang Yuan。基于MATLAB [D] [D]的数字图像处理系统的研究。长春科技大学,2008年。数字图像处理。西安电子科学技术出版社,西安[J]。 2003。LeZhongxin。数字图像信息处理[M]。国防工业出版社,2003年。数字图像处理及其应用。 Tsinghua大学出版社,2013年。WangQing,关于干Quiet模式分类器在手写数字识别中应用的比较研究[J]。设备制造技术,2008,5(6):40-43 Xie Jiafeng,Tan Guanzheng。基于MATLAB [J]的静止图像车牌定位研究。可编程控制器和工厂自动化(PLC FA),2009(1):68-71。

