汽车标志识别设计-MATLAB程序设计
- 格式:docx
- 大小:1.24 MB
- 文档页数:9
基于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.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。
信电1&China Computer&Communication 软件卄域;与龛用2021年第2期基于MATLAB的车牌识别系统设计张金凤(南京交通职业技术学院,江苏南京211188)摘要:本文在对国内外车牌识别算法的现状和已有的技术进行研究的基础上,开发一个基于MATLAB的车牌识别系统.该系统使用Radon变换对倾斜的车牌进行准确校正,采用OTUS算法二值化车牌图像,利用形态学理论中的开操作和闭操作对图像进行细化处理。
关键词:车牌识别;字符分割;字符识别;MATLAB中图分类号:TP391.41;U495文献标识码:A文章编号:1003-9767(2021)02-153-03The Design of the License Plate Recognition System Based on MATLABZHANG Jinfeng(Nanjing Vocational Institute of Transport Technology,Nanjing Jiangsu211188,China)Abstract:This paper develops a MATLAB-based license plate recognition system based on the research on the current status of domestic and foreign license plate recognition algorithms and existing technologies.The system uses the Radon transform to accurately correct the tilted license plate,uses the OTUS algorithm to binarize the license plate image,and uses the open and closed operations in the morphological theory to refine the image.Keywords:license plate recognition;character segmentation;character recognition;MATLAB0引言一般来说,车辆牌照识别系统由相机、计算机和自定义设计的图像处理软件组成,是智能交通管理系统中的重要组成部分E。
如何使用Matlab技术进行车牌识别车牌识别技术是一种在现代交通管理、安保等领域应用广泛的技术。
通过使用Matlab软件,我们可以轻松实现车牌识别功能。
本文将介绍如何使用Matlab技术进行车牌识别。
一、图像预处理在进行车牌识别之前,首先需要对图像进行预处理。
图像预处理的目的是提取车牌信息并减小噪声干扰。
在Matlab中,我们可以使用一系列图像处理函数来实现图像预处理,包括图像二值化、边缘检测、形态学操作等。
这些函数可以帮助我们提取车牌轮廓,并去除背景和噪声。
二、车牌定位车牌定位是车牌识别的关键步骤之一。
通过车牌定位,我们可以找到图像中的车牌区域,并将其与其他区域进行区分。
在Matlab中,可以使用图像分割、形态学滤波等技术来实现车牌定位。
这些技术可以帮助我们提取车牌的形状、颜色和纹理等特征,并将其与其他区域进行区分。
三、字符分割一旦我们成功地定位了车牌区域,就需要将车牌中的字符进行分割。
字符分割是车牌识别中的一个重要环节。
通过将车牌中的字符进行分割,我们可以得到单个字符的图像,为后续的字符识别做准备。
在Matlab中,可以使用一系列图像处理函数来实现字符分割,包括边缘检测、连通性分析和投影分析等。
这些函数可以帮助我们将车牌中的字符与其他区域进行分离。
四、字符识别字符识别是车牌识别的核心任务。
通过对字符进行识别,我们可以得到车牌中的文本信息。
在Matlab中,可以使用模式识别、神经网络或者深度学习等技术来实现字符识别。
这些技术可以帮助我们训练一个分类器,将字符图像与对应的字符进行匹配。
通过匹配算法,我们可以得到车牌的文本信息。
五、车牌识别结果展示在进行车牌识别之后,我们可以将识别结果进行展示。
通过将识别结果与原始图像进行对比,我们可以验证车牌识别的准确性。
在Matlab中,可以使用图像绘制函数和文本显示函数来实现车牌识别结果的展示。
通过这些函数,我们可以在原始图像中标注出识别结果,并将结果显示在图像上。
基于MATLAB的车牌识别系统设计与实现刘忠杰;宋小波;何锋;李芬;周培莹;刘百辰【摘要】This paper introduced a design and experimental simulation method of license plate recognition system based on the research of license plate location,license plate character segmentation and license plate character recognition.This method firstly located%通过对车牌定位、车牌字符分割和车牌字符识别进行研究,提出了一种车牌识别系统的设计和实验仿真方法。
该方法首先采用基于Canny算子边缘检测和数学形态学相结合的方法定位出车牌,进行二值化、滤波和形态学开运算后使用投影二分法分割出7个车牌字符,最后使用模板匹配和特征统计相结合的方法识别出车牌字符。
试验表明该方法是有效的、可行的,与传统使用单一算法相比较,该方法大大提高了车牌识别系统的正确率。
【期刊名称】《微型机与应用》【年(卷),期】2011(030)014【总页数】4页(P37-40)【关键词】图像预处理;车牌定位;车牌字符分割;车牌字符识别【作者】刘忠杰;宋小波;何锋;李芬;周培莹;刘百辰【作者单位】常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164;常州先进制造技术研究所机器人系统实验室,江苏常州213164【正文语种】中文【中图分类】TP391.43随着世界经济和科学技术的不断发展,智能交通系统越来越多地被人们所关注。
目录1.引言 (2)2.设计概述 (3)2.1车牌识别技术 (3)2.2 车牌识别技术的发展 (3)2.3 车牌识别技术的国内外研究现状 (4)2.4 主要应用领域 (6)3.设计方案 (7)4.车牌识别系统的matlab实现 (8)4.1 图像的读取 (8)4.2 图像预处理 (9)4.2.1灰度变换 (9)4.2.2 图像校正 (10)4.3 牌照分割 (10)4.3.1 图像边缘提取及二值化 (11)4.3.2 BP神经网络 (14)4.4 车牌提取 (15)5.设计结果及分析 (16)5.1程序运行结果 (16)5.2程序结果分析 (17)总结体会 (18)参考文献 (19)附录1 (20)附录2 (28)1.引言伴随着世界各国车辆数量的增加,城市交通状况日益受到人们的重视。
如何有效地进行交通管理,越来越成为各国政府的相关部门所关注的焦点。
针对这一问题,人们运行先进的信息处理技术、导航定位技术、无线通信技术、自动控制技术、图像处理和识别技术及计算机网络技术等科学技术,相继研发了各种交通道路监视管理系统、车辆控制系统及公共交通系统。
这些系统将车辆和道路综合起来进行考虑,运行各种先进的技术解决道路交通的问题,统称为智能交通系统( Intelligent Transportation System,简称ITS)。
ITS 是20世纪90年代兴起的新一代交通运输系统。
它可以加强道路、车辆、驾驶员和管理人员的联系,实现道路交通管理自动化和车辆行驶的智能化,增强交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。
智能交通系统以车辆的自动检测作为信息的来源,因而对车牌照等相关信息的自动采集和处理的一门新的交通信息获取技术——车牌识别(License Plate Recognition ,LPR) 技术逐渐发展起来,成为信息处理技术的一项重要研究课题。
车牌自动识别是智能交通管理系统中的关键技术之一。
交通标志检测与识别可以使用MATLAB和Python进行实现。
这里给出一个简单的例子,使用Python和OpenCV库进行交通标志检测与识别。
首先,确保已经安装了Python和OpenCV库。
可以使用以下命令安装OpenCV:```bashpip install opencv-python```接下来,创建一个名为`traffic_sign_detection.py`的Python文件,并添加以下代码:```pythonimport cv2# 加载预训练的模型model = cv2.dnn.readNetFromTensorflow('frozen_inference_graph.pb', 'graph.pbtxt')# 读取图像image = cv2.imread('test_image.jpg')# 将图像转换为blob格式blob = cv2.dnn.blobFromImage(image, size=(300, 300), swapRB=True, crop=False)# 设置输入并进行前向传播model.setInput(blob)output = model.forward()# 获取检测结果for detection in output[0, 0, :, :]:confidence = detection[2]if confidence > 0.5:class_id = int(detection[1])x1, y1, x2, y2 = (detection[3:7] * [image.shape[1], image.shape[0], image.shape[1], image.shape[0]]).astype(int)# 绘制边界框和类别标签cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)label = f"Class {class_id}: {confidence:.2f}"cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 显示结果cv2.imshow('Traffic Sign Detection', image)cv2.waitKey(0)cv2.destroyAllWindows()```注意:这个例子需要一个预训练的模型(`frozen_inference_graph.pb`和`graph.pbtxt`),你可以从互联网上找到一些开源的交通标志检测模型。
附录车牌识别程序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 对二值图像进行区域提取,并计算区域特征参数。
基于Matlab的车牌识别(完整版)基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。
本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。
并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。
一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。
车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。
二、设计步骤总体步骤为:车辆→图像采集→图像预处理→车牌定位→字符分割→字符定位→输出结果基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。
车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。
(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。
首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。
科技与创新┃Science and Technology &Innovation·20·2020年第14期文章编号:2095-6835(2020)14-0020-03基于MATLAB 平台下的车牌识别系统设计楚天鸿1,唐瑞尹2(1.华北理工大学电气工程学院,河北唐山063210;2.北华航天工业学院电子与控制工程学院,河北廊坊065000)摘要:科技的快速发展使汽车成为现代社会的重要代步工具,促生了新一代的智能交通系统,车牌识别技术作为智能交通的基石,为交通管理提供了技术支撑,使人们的驾车出行更为方便快捷。
将车牌识别与计算机软件相结合,在MATLAB 平台下,运用数字图像处理技术,对采集到的车辆图像进行相关操作,完成了对汽车牌照的定位和字符的分割。
同时,将改进后的模板匹配识别方法运用到字符识别中,使系统正确识别出车牌字符,实现了自动识别汽车牌照的目的。
关键词:车牌识别;MATLAB ;图像处理;模板匹配中图分类号:TP391.41文献标识码:ADOI :10.15913/ki.kjycx.2020.14.006自2013年起,中国汽车保有量逐年递增,2019年中国汽车保有量已经达到2.6亿辆,与2018年相比增长了8.83%。
这足以说明汽车已经成为民众生活中不可或缺的工具,给人们的出行带来方便的同时也给交通带来了巨大压力,建立一个完善的智能交通系统的需求愈发强烈。
计算机相关的科学技术迅猛发展以及现代网络科技的广泛应用,带动智能信息化功能处理技术不断完善,同时为现代汽车管理手段提供了新思路和新方案[1]。
汽车牌照是每辆汽车特有的身份证明,而车牌识别系统也成为了高速路、小区门禁、停车场等场所的必备工具,在交通管制等方面发挥着重要的作用。
车牌识别技术主要包括车牌定位、字符分割、字符识别三个部分[2],通过对采集到的车辆图像进行相关处理就可成功获取车牌号码,完成车牌识别。
本文在MATLAB 软件平台下,设计车牌识别系统,对小型汽车蓝底白字的车牌图像进行相关处理,实现车牌识别功能。
Matlab 程序设计任务书分院(系)信息科学与工程专业学生姓名学号设计题目车牌识别系统设计内容及要求:车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
1.牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
2.当车辆检测部分检测到车辆到达时 , 触发图像采集单元,采集当前的视频图像。
3.牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
进度安排:19 周: Matlab 环境熟悉与基础知识学习19周:课程设计选题与题目分析20周:程序设计编程实现20周:课程设计验收与答辩指导教师(签字):学院院长(签字):年月日年月日目录一.课程设计目的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3二.设计原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3三.详细设计步骤⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3四.设计结果及分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18五.总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19六.设计体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20七.参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理 :牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
附录车牌识别程序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 对二值图像进行区域提取,并计算区域特征参数。
基于MATLAB的车牌识别研究摘要随着我国公路事业的发展,人工管理方式已经不能满足如今实际的需要。
车牌识别技术是计算机视频图像识别技术在车辆牌照识别中的一种应用,是现代智能交通系统(Intelligent Traffic System,简称ITS)中的重要组成部分之一。
车牌识别系统(vehicle license plate recognition system,简称LPR)使车辆管理更加智能化、数字化,有效提升了交通管理的效率。
对于交通管理、治安处罚等工作的智能化起着十分重要的作用。
它可广泛应用于交通流量检测,交通控制与诱导,机场、港口、小区的车辆管理,不停车自动收费,闯红灯等违章车辆监控以及车辆安全防盗等领域,具有广阔的应用前景。
而牌照作为机动车辆管理的唯一标识符号,使得车辆牌照识别系统的研究在机动车管理方面具有重要的实际意义。
本文通过对题目的研究,设计了一个基于Matlab软件的车牌识别程序,可实现图像预处理、车牌定位、字符分割,然后通过神经网络对车牌进行字符识别,从图像中提取车牌中的字母和数字,从而得到文本形式的车牌号码。
其中,图像预处理是通过图像灰度化及Roberts算子进行边缘检测完成。
车牌定位是通过数学形态法来确定,然后再通过车牌彩色信息的彩色分割法来完成车牌的切割。
字符分割是将车牌部分进行二值化后,进行垂直投影以及对投影部分扫描得到。
通过用该算法对三个问题中的照片和视频进行处理,可识别车辆牌照:问题1:image_1.jpg中牌照信息肉眼可识别为渝A•7Y618,但本算法未将汉字识别;image_2.jpg中牌照信息肉眼可识别为渝B•PY287,但本算法未将汉字识别,未将数字完整识别;image_3.jpg中牌照信息肉眼可识别为渝B•XW192,但本算法未能识别;问题2:image_4.jpg中牌照信息肉眼可识别为渝B•SU298,但本算法未能识别;image_5.jpg中牌照信息未能识别;问题3:video.avi中肇事车辆牌照信息未能识别。
close allclc[fn,pn,fi]=uigetfile('ChePaiKu\*.jpg','选择图片');YuanShi=imread([pn fn]);%输入原始图像figure(1);subplot(3,2,1),imshow(YuanShi),title('原始图像');%%%%%%%%%%1、图像预处理%%%%%%%%%%%YuanShiHuiDu=rgb2gray(YuanShi);%转化为灰度图像subplot(3,2,2),imshow(YuanShiHuiDu),title('灰度图像');BianYuan=edge(YuanShiHuiDu,'robert',0.09,'both');%Robert算子边缘检测subplot(3,2,3),imshow(BianYuan),title('Robert算子边缘检测后图像');se1=[1;1;1]; %线型结构元素FuShi=imerode(BianYuan,se1); %腐蚀图像subplot(3,2,4),imshow(FuShi),title('腐蚀后边缘图像');se2=strel('rectangle',[30,30]); %矩形结构元素TianChong=imclose(FuShi,se2);%图像聚类、填充图像subplot(3,2,5),imshow(TianChong),title('填充后图像');YuanShiLvBo=bwareaopen(TianChong,2000);%从对象中移除面积小于2000的小对象figure(2);subplot(2,2,1),imshow(YuanShiLvBo),title('形态滤波后图像');%%%%%%%%%%2、车牌定位%%%%%%%%%%%[y,x]=size(YuanShiLvBo);%size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量YuCuDingWei=double(YuanShiLvBo);%%%%%%%%%%2.1、车牌粗定位之一确定行的起始位置和终止位置%%%%%%%%%%%Y1=zeros(y,1);%产生y行1列全零数组for i=1:yfor j=1:xif(YuCuDingWei(i,j)==1)Y1(i,1)= Y1(i,1)+1;%白色像素点统计endendend[temp,MaxY]=max(Y1);%Y方向车牌区域确定。
基于 matlab 的车牌识别系统一、目的与要求目的:利用 matlab 实现车牌识别系统,熟悉matlab应用软件的根底知识,了解了根本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,防止理论与实践的脱离,稳固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。
同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论根底,有助于自身综合能力的提高。
要求:1.理解各种图像处理方法确切意义。
2.独立进展方案的制定,系统构造设计要合理。
3.在程序开发时,那么必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。
如果使用matlab 来进展开发,要理解每个函数的具体意义和适用X围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。
4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。
二、设计的内容学习 MATLAB 程序设计,利用MATLAB 函数功能,设计和实现通过设计一个车牌识别系统。
车牌识别系统的根本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进展预处理,再对牌照进展搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进展二值化并将其分割为单个字符,然后将其逐个与创立的字符模板中的字符进行匹配,匹配成功那么输出,最终匹配完毕那么输出那么为车牌的数字。
车牌识别系统的根本工作原理图如图1所下所示:车辆字符分割字符识别图像采集车牌的定位三、总体方案设计车辆牌照识别整个系统主要是由车牌定位和字符分割识别两局部组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。
为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的比照度和清晰可辩的牌照图象。
但由于是采用智能手机在开放的户外环境拍照,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进展识别前的预处理。
基于matlab的汽车牌照识别程序摘要:本次课程设计的目的是通过对基于MATLAB的字符识别的研究,以汽车牌照识别的设计为实例,详细介绍字符识别的相关原理。
整个汽车牌照识别的过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。
在研究的同时对其中出现的问题进行了具体分析,处理。
寻找出对于具体的汽车牌照识别过程的最好的方法。
关键词:MATLAB字符识别车牌识别神经网络图像处理0 引言在MATLAB的字符识别研究中,汽车牌照的识别是最经典的样例,因为车辆牌照识别系统(License Plate Recognition System,简称LPRS)是建设智能交通系统不可或缺的部分。
基于MATLAB图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。
车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分处理工程,最后识别出汽车牌照。
1 MATLAB及其图像处理工具概述MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是Math Works公司开发的一种功能强、效率高、简单易学的数学软件。
MATLAB的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP、*.JPG、*.JPEG、*.GIF、*.TIF、*.TIFF、*.PNG、*.PCX、*.XWD、*.HDF、*.ICO、*.CUR等。
MATLAB7.X提供了20多类的图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。
这些函数按其功能可分为:图像显示、像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作色彩空间变换、像类型与类型转换。