基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc

41528d3028836879cd698677c3999917.gif基于matlab的车牌识别系统的设计(附程序).doc

1车牌识别系统的设计1.摘要:汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。本文首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照,然后采用局部投影进行字符分割。在字符识别部分,提出了在无特征提取情况下基于支持向量机的车牌字符识别方法。实验结果表明,本文提出的方法具有良好的识别性能。随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经不能满着实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。汽车牌照的自动识别技术已经得到了广泛应用。2.设计目的:1、使学生在巩固理论课上知识的同时,加强实践能力的提高,理论联系实践。2、激发学生的研究潜能,提高学生的协作精神,锻炼学生的动手能力。3.设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。图1牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1所示。其基本工作过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;2(2)由摄像机或CCD摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。4.详细设计步骤4.1提出总体设计方案。车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割与特征提取和单个字符识别两个模块。为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU要求主频在600HZ及以上,内存在128MB及以上。系统可以运行于Windows98、Windows2000或者WindowsXP操作系统下,程序调试时使用matlab。4.2预处理及边缘提取3输入车牌图象灰度校正平滑处理提取边缘图2预处理及边缘提取流程图4.2.1图象的采集与转换考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色B通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。因为蓝色(255,0,0)与白色(255,255,255)在B通道中并无区分,而在G、R通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用R通道,绿底白字的牌照可以用G通道就可以明显呈现出牌照区域的位置,便于后续处理。原图、灰度图及其直方图见图2与图3。对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:G=0.110B+0.588G+0.302R(1)G=(2)3RGB图3原图图4灰度图44.2.2边缘提取边缘是指图像局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。所以在此我们要对图像进行边缘检测。图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要的。增强图象对比度度的方法有:灰度线性变换、图象平滑处理等。(1)灰度校正由于牌照图象在拍摄时受到种种条件的限制和干扰,图象的灰度值往往与实际景物不完全匹配,这将直接影响到图象的后续处理。如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图象中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度有较大的差异而产生图象灰度失真,或是由于曝光不足而使得图像的灰度变化范围很窄。这时就可以采用灰度校正的方法来处理,增强灰度的变化范围、丰富灰度层次,以达到增强图象的对比度和分辨率。我们发现车辆牌照图象的灰度取值范围大多局限在r=(50,200)之间,而且总体上灰度偏低,图象较暗。根据图象处理系统的条件,最好将灰度范围展开到s=(0,255)之间,为此我们对灰度值作如下的变换:s=T(r)r=[rmin,,rmax]使得S∈[Smin,Smax],其中,T为线性变换,图5灰度线性变换(3)minr-axiSinrmi-axrS若r(50,200)、s(0,255)则:(4)85r7.1502-r15(2)平滑处理对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方法莱削弱噪声的影响,这种方法称为图象平滑处理。例如,某一象素点的邻域S有两种表示方法:8邻域和4邻域分别对应的邻域平均值为(5)sjijifMjig),(),(1),(其中,M为邻域中除中心象素点f(i,j)之外包括的其它象素总数,对于4邻域M=4,8邻域M=8。然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域和字符轮廓等部分产生模糊作用。为了克服这种平均化引起的图象模糊现象,我们给中心点象素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。边缘提取是较经典的算法,此处边缘的提取采用的是Robert

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python英文词云代码_使用python实现个性化词云的方法

先上图片词云图 需要模板 pip install jieba pip install wordcloud 还需要安装另外两个东西这两个我也不太懂借鉴百度写上去的 pip install scipy pip install matplotlib 因为用ubuntu系统所有没有windows那么麻烦,也没有那么多报错 看到好多人制作自己的词云有没…

linux监测node进程,通过node_exporter监控linux服务器一

前言:node_exporter用于监控*nux系统,使用go编写的收集器prometheus服务器:192.168.199.222监控服务器 192.168.199.221在192.168.199.221下载node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v*/node_exp…

k8s 离线安装_阿里开源 k8s 事件通知服务

背景在 Kubernetes 开源生态中,资源监控有 metrics-server、Prometheus等,但这些监控并不能实时推送 Kubernetes 事件,监控准确性也不足。当 kubernetes 集群中发生 Pod因为 OOM 、拉取不到镜像、健康检查不通过等错误导致重启,集…

kali linux解密栅栏密码,最详细bugku加密小白解法---持续更新!

bugku加密!安排本文持续更新1 摩斯密码2 栅栏密码3 Ook密码4 brain密码5 easycrypto密码6 base647 散乱的密文8 凯撒密码9 一段base6410 !?11 []-12 奇怪的密码--凯撒变式13 托马斯杰斐逊--转轮加密14 伪加密15 告诉你个秘密16 这不是MD517 贝…

linux命令 重定向%3e,linux输出信息调试信息重定向

在运行linux的时候有所有的调试信息可以分为三个部分1、bootloader输出信息U-Boot 1.3.2(Nov 19 2016 - 22:02:08)DRAM: 64 MBFlash: 512 kBNAND: 64 MiBIn: serialOut: serialErr: serialHit any key to stop autoboot: 0[yqliu2410 #] tftpFound DM9000 ID:90000a46 at addre…

360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”

0x00 寻找突破口打开首页,emm就一个登录页面,没了随便写点东西提交看看天生手欠的我一不小心就多输了一个单引号WDNMD,除了数字和字母其他都不行?这叫我怎么测?刚刚要放弃,就在这时,首页的一个二维码吸引了我正是安卓端的软件,眼前一亮,仿佛找到了打开新世界的大门开开心心地…

python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...

目录一、三元表达式二、函数递归 递归调用的定义递归分为两个阶段:递归,回溯三、匿名函数 什么是匿名函数?有名字的函数与匿名函数的对比lambda匿名函数的应用四、内置函数 #注意:内置函数id()可以返回一个对象的身份,…

linux 内核空间占用cpu百分比过高,linux下分析java程序占用CPU、内存过高

一、CPU过高分析1)使用TOP命令查看CPU、内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比。其中CPU状态中标示id的为空闲CPU百分比。当空闲CPU百分比越低,说明CPU占用率越高。2)…

springboot 获取application参数_LOOK ! SpringBoot的外部化配置最全解析

本篇要点介绍各种配置方式的优先级。介绍各种外部化配置方式。介绍yaml的格式及原理。介绍如何绑定并测试类型安全的属性配置。介绍ConfigurationProperties与Value的区别。一、SpringBoot官方文档对于外部化配置的介绍及作用顺序SpringBoot支持多种外部化配置,以便…

spark入门_入门必读 | Spark 论文导读

Resilient Distributed Datasets: A fault-tolerant abstraction for in-Memory cluster computing, 是讲述 Spark RDD 的基础论文,通读论文能给我们带来全景的 Spark 知识面摘要:RDD,全称Resilient Distributed Dataset,可伸缩性数据集。使用…

Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法

QT Creator是轻量级集成开发环境,在Ubuntu系统操作中,使用QT时无法输入中文,遇到这种情况要如何处理呢?下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题。1 安装搜狗输入法,(如果你想用ubuntu自带的输入法也没…

altium pcb 信号高亮_在PCB设计中高效的放置元件技巧

在印刷电路板设计中,设置电路板轮廓后,将零件(占地面积)调用到工作区。然后将零件重新放置到正确的位置,并在完成后进行接线。组件放置是这项工作的第一步,对于之后的平滑布线工作是非常重要的工作。如果在接线工作期间模块不足&a…

linux升级ssh到6.6版本,CentOS6.5 openssh升级到openssh-7.6版本

CentOS6.5 openssh升级到openssh-7.6版本2018-8-3 foooy升级前保证故障后能现场处理,或者远程卡处理,否则不要这样直接升级yum install -y gcc openssl-devel pam-devel rpm-buildwget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6…

python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...

问题描述: 写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候,csv文件自动分成两个单元格) with open("test.csv","w") as f: f.write("闲暇时,我会被一段,配乐诗朗诵,所感动,悲伤…

rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...

上期写到高并发下RabbitMq消息中间件你应该介么玩今天给小伙伴说说!有自己看法的也可以在评论区留言探讨,也可以转发关注下我以后会长期分享!目录:确保消息发送到RabbitMQ服务器确保消息被正确的路由确保消息在队列正确地存储确保…

linux 装完yum不能用,【linux】yum 不能安装应用,提示There are no enabled repos Run “yum repolist all”...

回答一般来说著名的linux系统基本上分两大类:1 RedHat系列:Redhat、Centos、Fedora等2 Debian系列:Debian、Ubuntu等RedHat 系列:1 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数”2 包管理工具 yum3 支持ta…

更新fielddata为true_线程与更新UI,细谈原理

前言 相信不少读者都阅读过相类似的文章了,但是我还是想完整的把这之间的关系梳理清楚,细节聊好,希望你也能从中学到一些。进入正题,大家应该都听过这样一句话——“UI更新要在主线程,子线程更新UI会崩溃”。久而久之就…

linux sublime3 插件安装插件,手动安装sublimeText3插件

就在今天下午,我花了一个小时的时间安装sublime3插件stylus,就是为了让stylus文件能够高亮显示。网上找了很多方法,可以通过package control安装,然而,我的sublime package control能够正常显示,插件列表也…

vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...

文章后有获取软件的方式。基本快捷键A-角度捕捉开关 B-切换到底视图C-切换到摄象机视图D-封闭视窗E-切换到轨迹视图F-切换到前视图G-切换到网格视图H-显示通过名称选择对话框I-交互式平移J-选择框显示切换K-切换到背视图L-切换到左视图M-材质编辑器N-动画模式开关O-自适应退化开…

mfc读取txt文件并显示_Python入门丨文件读写

文件读写文件读写,是Python代码调用调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西。读取文件读取文件三个步骤:准备工作:首先在桌面新建了一个test文件夹&#x…