MATLAB车牌识别过程

合集下载

(完整版)基于matlab的车牌识别(含子程序)

(完整版)基于matlab的车牌识别(含子程序)

基于matlab的车牌识别系统一、对车辆图像进行预处理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg', 'JPEG 文件(*.jpg)'});if(filename == 0), return, endglobal FILENAME %定义全局变量FILENAME = [pathname filename];I=imread(FILENAME);figure(1),imshow(I);title('原图像');%将车牌的原图显示出来结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图像');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');%绘制灰度图的直方图结果如下所示:3. 用roberts算子进行边缘检测:I2=edge(I1,'roberts',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测figure(3),imshow(I2);title('roberts 算子边缘检测图像');结果如下:4.图像实施腐蚀操作:se=[1;1;1];I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title('腐蚀后图像');5.平滑图像se=strel('rectangle',[25,25]);%构造结构元素以正方形构造一个seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title('平滑图像');结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);% 去除聚团灰度值小于2000的部分figure(6),imshow(I5);title('从对象中移除小的对象');结果如下所示:二、车牌定位[y,x,z]=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic表示计时的开始,toc表示计时的结束Blue_y=zeros(y,1);%产生一个y*1的零阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 %则Blue_y(i,1)的值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定%temp为向量white_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%x方向车牌区域确定%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title('定位裁剪后的车牌彩色图像');的车牌区域如下所示:三、字符分割及处理1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别车牌识别技术是一种在现代交通管理、安保等领域应用广泛的技术。

通过使用Matlab软件,我们可以轻松实现车牌识别功能。

本文将介绍如何使用Matlab技术进行车牌识别。

一、图像预处理在进行车牌识别之前,首先需要对图像进行预处理。

图像预处理的目的是提取车牌信息并减小噪声干扰。

在Matlab中,我们可以使用一系列图像处理函数来实现图像预处理,包括图像二值化、边缘检测、形态学操作等。

这些函数可以帮助我们提取车牌轮廓,并去除背景和噪声。

二、车牌定位车牌定位是车牌识别的关键步骤之一。

通过车牌定位,我们可以找到图像中的车牌区域,并将其与其他区域进行区分。

在Matlab中,可以使用图像分割、形态学滤波等技术来实现车牌定位。

这些技术可以帮助我们提取车牌的形状、颜色和纹理等特征,并将其与其他区域进行区分。

三、字符分割一旦我们成功地定位了车牌区域,就需要将车牌中的字符进行分割。

字符分割是车牌识别中的一个重要环节。

通过将车牌中的字符进行分割,我们可以得到单个字符的图像,为后续的字符识别做准备。

在Matlab中,可以使用一系列图像处理函数来实现字符分割,包括边缘检测、连通性分析和投影分析等。

这些函数可以帮助我们将车牌中的字符与其他区域进行分离。

四、字符识别字符识别是车牌识别的核心任务。

通过对字符进行识别,我们可以得到车牌中的文本信息。

在Matlab中,可以使用模式识别、神经网络或者深度学习等技术来实现字符识别。

这些技术可以帮助我们训练一个分类器,将字符图像与对应的字符进行匹配。

通过匹配算法,我们可以得到车牌的文本信息。

五、车牌识别结果展示在进行车牌识别之后,我们可以将识别结果进行展示。

通过将识别结果与原始图像进行对比,我们可以验证车牌识别的准确性。

在Matlab中,可以使用图像绘制函数和文本显示函数来实现车牌识别结果的展示。

通过这些函数,我们可以在原始图像中标注出识别结果,并将结果显示在图像上。

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计摘要:车牌智能识别技术是智能交通系统中的重要组成部分,能够提高交通管理效率和安全性。

本文基于MATLAB平台,设计了一种车牌智能识别系统,通过图像处理和模式识别技术实现车牌号码的准确识别。

该系统能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,具有较高的准确性和稳定性,可以有效应用于停车场管理、交通违法抓拍等领域。

关键词:车牌智能识别;MATLAB;图像处理;模式识别一、引言随着汽车数量的快速增长,交通拥堵和交通管理成为社会发展中的一大难题。

为了提高交通管理效率和安全性,智能交通系统得到了广泛的关注和应用。

车牌智能识别技术作为智能交通系统中的重要组成部分,能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,为交通管理和监控提供了重要的支持。

二、相关技术及方法1. 图像处理技术图像处理技术是车牌智能识别系统中的核心技术之一,主要包括灰度化、二值化、边缘检测、形态学处理等操作。

灰度化是将彩色图像转换为灰度图像,简化了图像信息的处理;二值化将灰度图像转换为二值图像,方便进行特征提取和分割操作;边缘检测可以准确提取车牌的轮廓信息;形态学处理可以用于去除图像中的噪声点和填充孔洞,提高字符的连通性。

2. 字符分割与特征提取字符分割是指将车牌图像中的字符分离出来,是车牌识别的关键步骤之一。

在字符分割后,需要进行字符的特征提取,包括字符的大小、形状、像素点分布等特征。

这些特征可以用于字符的识别和分类,提高识别的准确性和鲁棒性。

3. 模式识别算法模式识别算法是车牌智能识别系统中的另一个核心技术,主要包括基于模板匹配的模式识别、基于统计学习的模式识别、基于深度学习的模式识别等方法。

这些算法能够对字符进行准确的识别和分类,为车牌智能识别系统提供了强大的分析和识别能力。

三、车牌智能识别系统设计基于MATLAB平台,设计的车牌智能识别系统主要包括图像预处理、字符分割与特征提取、模式识别和结果输出四个主要模块。

matlab车牌识别原理

matlab车牌识别原理

matlab车牌识别原理
MATLAB车牌识别原理涉及图像处理和模式识别技术。

首先,图
像被获取并传入MATLAB环境。

然后,车牌识别过程通常包括以下步骤:
1. 图像预处理,包括灰度化、去噪、增强和边缘检测等。

这些
步骤有助于减少干扰和突出车牌区域。

2. 车牌定位,使用图像处理技术,如边缘检测、形态学操作和
轮廓分析,来定位图像中的车牌位置。

3. 字符分割,在车牌上识别出的字符需要被分割成单独的图像。

这通常需要使用分割算法和形态学转换来分离每个字符。

4. 字符识别,对每个单独的字符进行识别。

这可以使用基于模
式识别的方法,如人工神经网络或支持向量机等,来对字符进行分
类和识别。

MATLAB提供了丰富的图像处理和模式识别工具箱,包括用于图
像预处理、特征提取和分类的函数和工具。

通过结合这些工具,可
以实现车牌识别系统的各个步骤。

此外,MATLAB还支持深度学习工具箱,可以用于训练深度神经网络来进行车牌识别。

总的来说,MATLAB车牌识别原理涉及图像处理和模式识别技术的综合应用,通过一系列步骤对车牌图像进行处理和分析,最终实现对车牌的准确识别。

基于Matlab的车牌识别(完整版)

基于Matlab的车牌识别(完整版)

基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。

本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。

并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。

一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。

车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。

二、设计步骤总体步骤为:基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。

车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。

(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。

车牌识别matlab实验报告

车牌识别matlab实验报告

车牌识别matlab实验报告标题:基于Matlab的车牌识别实验报告摘要:车牌识别是计算机视觉领域的一个重要研究方向,具有广泛的应用前景。

本实验基于Matlab平台,设计并实现了一个简单的车牌识别系统。

实验采用了图像处理和模式识别的技术,通过对车牌图像的预处理、字符分割和字符识别等步骤,成功地实现了对车牌的自动识别。

实验结果表明,该系统在不同场景下的车牌识别效果良好。

一、引言随着交通问题的日益突出,车牌识别技术在交通管理、安防等领域得到广泛应用。

车牌识别系统的核心是对车牌图像进行处理和分析,从中提取出车牌的信息。

本实验旨在利用Matlab平台,实现一个简单的车牌识别系统,并对其性能进行评估。

二、实验方法1. 数据收集:收集包含不同角度、光照条件和车牌类型的车牌图像,并建立一个图像库。

2. 图像预处理:对采集到的车牌图像进行预处理,包括图像增强、灰度化、二值化等操作,以减小光照和噪声对后续处理的影响。

3. 车牌定位:利用边缘检测和形态学处理等方法,对预处理后的图像进行车牌定位,提取出车牌区域。

4. 字符分割:对提取到的车牌区域进行字符分割,将车牌中的字符单独切割出来,以便后续的字符识别。

5. 字符识别:利用模式识别算法,对字符进行识别。

本实验采用了支持向量机(SVM)算法进行训练和分类。

6. 性能评估:对实验结果进行评估,包括准确率、召回率和F1值等指标。

三、实验结果与讨论经过实验测试,我们的车牌识别系统在不同场景下表现出良好的性能。

在收集的测试集上,系统的准确率达到了90%,召回率为85%。

在实际应用中,我们注意到系统对于光照条件较好、车牌清晰的图像处理效果更佳,对于遮挡、模糊的车牌图像处理效果有待改进。

四、结论本实验基于Matlab平台,设计并实现了一个简单的车牌识别系统。

通过图像预处理、车牌定位、字符分割和字符识别等步骤,我们成功地实现了对车牌的自动识别。

实验结果表明,该系统在不同场景下的车牌识别效果良好,并能够较为准确地提取出车牌中的字符信息。

基于MATLAB的车牌识别系统的实现

基于MATLAB的车牌识别系统的实现

基于MATLAB的车牌识别系统的实现
1 引言
车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并应满足实时性要求。

牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术,其硬件一般包括触发、摄像、照明、图像采集等设备,其软件核心包括车牌定位、车牌字符分割和字符识别等算法。

2 系统的实现
2.1 系统简述
一个完整的牌照识别系统应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。

当车辆到达触发图像采集单元时,系统采集当前的视频图像,牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。

牌照识别系统原理如图
1 所示。

2.
2 图像预处理
输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。

对图像进行灰度化处理、提取背景图像、增强处理、图像二值化、边缘检测、滤波等处理的主要MATLAB 语句如下所示:2.3 车牌定位
自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。

首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进。

车牌识别的matlab程序-(详细注释,并有使用注意点)

车牌识别的matlab程序-(详细注释,并有使用注意点)

附录车牌识别程序clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread('3.jpg');%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图figure,imshow(Sgray),title('原始黑白图像');%Step2 图像预处理对Sgray 原始黑白图像进行开操作得到图像背景s=strel('disk',13);%strel函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title('背景图像');%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像%Step3 取得最佳阈值,将图像二值化fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值bw22=im2bw(Egray,level);%转换图像为二进制图像bw2=double(bw22);%Step4 对得到二值图像作开闭操作进行滤波figure,imshow(bw2);title('图像二值化');%得到二值图像grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界figure,imshow(grd);title('图像边缘提取');%输出图像边缘bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的闭运算figure,imshow(bg1);title('图像闭运算[5,19]');%输出闭运算的图像bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算figure,imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的开运算figure,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像%Step5 对二值图像进行区域提取,并计算区域特征参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.3 系统详细设计7.3.1 车牌图像读入目前常用的图像格式主要有*.PCX、*.BMP、*.JPG、*.TIFF、*.GIF 等,本设计采集到的图片格式为*.JPG格式,这种格式的图像占有的存储空间小,而且是使用最广的图片保存和传输格式,大多数的摄像设备也都是以*.JPG格式保存图像的。

利用图像工具的图像读取函数imread() 来读取一副图像,其使用格式为:I=imread(‘fn pn’); %fn为图像文件名,pn为文件路径使用图像工具的图像显示函数imshow() 来显一副图像,使用格式为:Imshow(I);具体代码为:[fn pn]=uigetfile (‘*.JPG’,’选择图片’);%选择图像文件,fn为文件名,pn为路径I= imread ([fn pn]); %显示所选图像Figure,imshow(I);title(‘原始车牌图像’); %在新建的figure中显示所选图像文件,figure标题为原始车牌图像以一副名为“桂APC322”的车牌图片为例,程序运行结果为:7.3.2 彩色(基于蓝色)车牌定位、提取将彩色车牌读入后,采用水平垂直双向投影法,将图像分别投影到X、Y坐标轴,然后分别沿X、Y轴扫描图像。

当沿Y轴扫描时,一边扫描一边统计图像中蓝色像素点的个数,第一次扫描到蓝色像素点最多的行时停止扫描,并记录下蓝色像素点最多的行,然后以这行为基点,分别向上、向下扫描直到统计的像素点小于像素点阀值时,停止扫描,记录上下行的Y轴坐标PY2,PY1,I=(PY1:PY2,: ,:)就为Y轴方向的车牌区域,代码如下:Blue_y=zeros(y,1);for i=1:yfor j=1:xif((myI(i,j,1)<=48)&&((myI(i,j,2)<=100)&&(myI(i,j,2)>=40))&&((myI(i,j ,3)<=200)&&(myI(i,j,3)>=80)))Blue_y(i,1)= Blue_y(i,1)+1; %统计蓝色像素点endendend[temp MaxY]=max(Blue_y); %PY1=MaxY;%while ((Blue_y(PY1,1)>=Y_threshlow)&&(PY1>1)) %PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=Y_threshlow)&&(PY2<y))%ÕÒµ½Í¼Æ¬Éϱ߽çPY2=PY2+1;endPY1, PY2figure(2),subplot(1,2,1),plot(Blue_y),title('行方向的蓝色像素点统计');grid onIY=I(PY1:PY2,:,:);figure(2),subplot(1,2,2),imshow(IY),title('行方向车牌区域');运行结果如下:同理可得X轴方向的车牌区域:两者结合可提取出完整的车牌区域:7.3.3 车牌图像灰度化由于车牌底色跟上面的字符的颜色对比度很大,所以将RGB图像转化为灰度图时,车牌底色跟字符的灰度值也会相差很大,这样就可以很明显的显现出车牌区域,便于后续处理。

本系统使用的是MA TLAB内的灰度图转换函数rgb2gray(),其图像灰度值计算公式为:G=0.299R+0.578G+0.114B;程序源代码为:bw=rgb2gray (I);figure(6),imshow (bw);title(‘灰度图像’);运行结果为:7.3.4 车牌倾斜校正由于摄像头拍摄角度的不同,可能使拍摄的车牌图片也发生倾斜,为了图像的后续处理以及很好的去识别字符,需对提取的带有倾斜的车牌图像进行校正。

本系统采用的办法是,首先用radon 算法进行倾斜角度计算,然后根据倾斜角对图片精选修正,从而得到水平方向一致的图片,利于后期的分割识别。

代码如下:I=edge(I);%theta = 1:180;[R,xp] = radon(I,theta);[I,J] = find(R>=max(max(R)));%bw=imrotate(bw,qingxiejiao,'bilinear','crop');figure,imshow(bw);title ('车牌倾斜');运行结果如下:7.3.5 车牌图像处理对车牌灰度图像的处理主要有二值化、腐蚀、去除干扰、膨胀、擦除、取反,都可以直接使用图像工具箱的图像处理函数。

经过以上处理过程后可以得到带边框的白底黑字的车牌图片,但是由于还存在车牌的边框,需要对其进行二次的裁剪,裁剪方法跟上面阐述的提取彩色车牌方法相似,先将图片水平垂直投影,然后统计黑色像素点,找到字符边缘进行裁剪,得到除去边框的白底黑字的车牌照。

代码如下:SE=ones(3,3);bw=im2bw(bw);figure,imshow(bw);title('二值化');bw=imerode(bw,SE);figure,imshow(bw);title('腐蚀');bw=bwmorph(bw,'clean',inf);bw=bwmorph(bw,'hbreak',inf);bw=bwmorph(bw,'spur',inf);bw=imdilate(bw,SE);figure,imshow(bw);title('膨胀');bw = bwareaopen(bw, threshold);figure,imshow(bw);title('擦除');bw=~bw;figure,imshow(bw);title('颜色取反');bw=touying(bw);figure;imshow(bw);title('投影');运行结构如下:7.3.6 字符分割对二次裁剪的车牌图像进行水平垂直投影,计算水平垂直峰,检测合理的字符高宽比.可用与区域分割相同的方法进行峰值的删除和合并.但在字符切割时,往往由于阈值取得不好,导致字符切割不准确,针对这种情况,可以由车牌格式的先验知识,对切割出的字符宽度进行统计分析,用以指导切割。

代码如下:[y,x]=size(imfenge);histogram=sum(~imfenge);k=1;for h=1:x-1if((histogram(1,h)<=shedingyuzhi)&&(histogram(1,h+1)>shedingyuzhi))||(( h==1)&&histogram(1,h)>shedingyuzhi)fenge(1,k)=h;k=k+1;elseif((histogram(1,h)>shedingyuzhi)&&(histogram(1,h+1)<=shedingyuzhi))||(( h==x-1)&&histogram(1,h)>shedingyuzhi)fenge(1,k)=h+1;k=k+1;endendk=k-1;if(sum(histogram(1,fenge(1,1):fenge(1,2)))<ganrao)||((fenge(1,2)-fenge( 1,1))<(fenge(1,4)-fenge(1,3))/2)for i=3:kfenge(1,i-2)=fenge(1,i);endend[m n]=size(fenge);fenge=fenge(1,1:14);运行结果如下:7.3.7 字符识别目前字符识别方法主要有神经网络识别法和模板匹配法。

人工神经网络是模拟人脑思维功能和组织建立起来的数学模型,但总体来说其应用还是相对复杂的。

模板匹配法是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。

也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。

本系统使用的是较为简单的模板匹配法来识别字符的。

首先将待识别字符的图像进行归一化处理,使其长宽与模板字符图像长宽一致,模板使用的是80*160的图片尺寸,待识别字符图像归一化代码为:xiuzhenghanzi = imresize(han_zi, [80 160],'bilinear');xiuzhengzimu = imresize(zi_mu, [80 160],'bilinear');xiuzhengzm_sz_1 = imresize(zm_sz_1,[80 160],'bilinear');xiuzhengzm_sz_2 = imresize(zm_sz_2,[80 160],'bilinear');xiuzhengzm_sz_3 = imresize(zm_sz_3,[80 160],'bilinear');xiuzhengzm_sz_4 = imresize(zm_sz_4,[80 160],'bilinear');xiuzhengzm_sz_5 = imresize(zm_sz_5,[80 160],'bilinear');待识别字符图像与模板字符图像长宽一致以后,就可以用带识别字符图像与模板字符图像进行匹配,具体过程为:建立模板字库表读取分割出来的字符第一个字符与模板中的汉字模板进行匹配第二个字符与模板中的字母模板进行匹配后5个字符与模板中的字母与数字模板进行匹配求待识别字符与模板字符的相关系数,相关系数越大,说明其相似度越大识别完成,输出此模板对应值字符匹配代码为:comp=[ ];for n=1:num_letrassem=corr2(xiuzhengzifu,mubanzifu);%利用corr2()函数求待识别字符图像与模板图像的相关系数comp=[comp sem]; %将相关系数的值赋给compendxiangguan=find(comp==max(comp)); %找出相关系数最大的值msgbox(shibiejieguo,'识别结果'); %显示识别结果运行结果如下:7.3.8 语音播报识别结果对字符正确识别之后,用事先对对每一个字符的录音根据对应字符顺序播放。

相关文档
最新文档