基于STM32F103RCT6车牌识别系统_第1页
基于STM32F103RCT6车牌识别系统_第2页
基于STM32F103RCT6车牌识别系统_第3页
基于STM32F103RCT6车牌识别系统_第4页
基于STM32F103RCT6车牌识别系统_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于STM32F103RCT6车牌识别系统【摘要】课题研究设计了一款基于STM32单片机的自动车牌识别信息系统。主要软件包含一个STM32主控控制芯片,2.8寸的TFT三型液晶图像显示控制模块,摄像头采集控制模块(OV767O),指示灯控制,电源,蜂鸣器报警模块,按键等模块组成。系统内部采用5v直流电源通过一个AMS1117芯片电压转换器作为3.3v光源电压为整个监控系统进行供电。然后可以利用STM32F103RCT6等微控制器的OV7670摄像头自动采集车牌图像,通过模式识别,匹配,最后可以获得整个车牌管理信息并在一个TFT的液晶屏上实时进行数字显示,同时可以显示车牌计算机和收费,最后可以

2、完成对整个车牌系统管理功能图的实现。同时显示计算收费,最后完成对整个系统功能实现。这个设计可以实现车牌的识别,可以应用与道路交通车牌识别,停车场车牌识别计时收费,小区车牌识别等实际情景当中。关键词:STM32F103RCT6;TFT液晶显示;0V7670;AbstractAautomaticlicenseplaterecognitioninformationsystembasedonSTM32single-chipmicrocomputerisstudiedanddesigned.ThemainsoftwareincludesaSTM32maincontrolchip,a2.8-inchTFT

3、liquidcrystalimagedisplaycontrolmodule,acameraacquisitioncontrolmodule(OV7670),indicatorlightcontrol,powersupply,buzzeralarmmodule,buttonsandothermodules.Thesystemadoptsaothermodules.Thesystemadoptsa5VDCpowersupplytopowerthewholemonitoringsystemthroughanAMS1117chipvoltageconverterasa3.3vlightsourcev

4、oltage.ThenyoucanuseOV7670camerasofmicrocontrollerssuchasSTM32F103RCT6toautomaticallycollectlicenseplateimages,passmoderecognition,match,andfinallyobtainthewholelicenseplatemanagementinformationanddigitaldisplayitinrealtimeonaTFTLCDscreen.Atthesametime,thelicenseplatecomputerandAttheend,theimplement

5、ationofthewholelicenseplatesystemmanagementfunctiondiagramcanbecompleted.Atthesametime,showthecalculatedfeesandfinallycompletetheimplementationofthewholesystemfunction.Thisdesigncanrealizelicenseplaterecognition,canbeappliedtopracticalsituationssuchasroadtrafficlicenseplaterecognition,parkinglotlice

6、nseplaterecognitiontimecharge,communitylicenseplaterecognitionandotherpracticalscenarios.Keywords:STM32F103RCT6;TFTliquidcrystaldisplay;OV767目录TOC o 1-5 h z引言1一、系统的整体研究方案错误!未定义书签。(一)系统的整体设计方案错误!未定义书签。(二)单片机选型方案3(三)显示模块方案4二、系统硬件设计4(一)单片机最小系统模块5(二)液晶显示模块6(三)图像采集电路设计7(四)按键电路设计9(五)蜂鸣器报警电路设计9三、系统软件设计10(一

7、)系统主程序设计10(二)二值化程序设计11(三)车牌区域识别位置程序设计11(四)字符分割程序设计13(五)字符匹配程序设计13(六)计时收费程序设计13四、系统调试15(一)硬件调试15(二)软件调试16(三)实验分析17结论18致谢19参考文献20附录1原理图21附录2PCB图22附录3实物图2324附录4源程序 引言随着当前我国的特色社会主义市场经济的快速健康发展,人民基层群众财产生活质量物质生产水平的不断稳步增长提高,私人公共场所以及拥有或者使用小型机动车辆的工作人员及其数量迅速不断扩大增加,汽车自动化的普及已经成为必然趋势。因此,只有加强道路交通建设和推进现代化交通管理齐头并进,大

8、力发展现代智能交通系统,才能更有可能真正地有效解决日益严重的道路交通安全问题。车辆驾驶牌照图像识别(LPR)处理技术目前是我国智能交通系统设计中的一个重要环节,在智能交通路况监视和车辆控制中一直占据着非常重要的技术地位。车牌照指纹识别的新技术目前己经越来越多的受到现代人们的高度重视。车牌手机牌照识别系统的主要目的之一是在手机车辆牌照图像中自动准确定位车辆牌照认证位置并准确识别车辆牌照认证号码,是数字图像处理与模式识别结合技术的一种典型综合应用。基于图像预处理技术的车牌识别的研究在国外早就开始了,但是我国对车牌自动识别的研究比较晚,大约在80年代末。20世纪90年代后期,随着我国的发展导致汽车数

9、量的急剧增加,车牌识别技术的应用范围也越来越大,所以现在车牌识别技术成为热门的研究课题。国内自主研究的产品的车牌识别率大多在90%以上,虽然很多产品的识别率都比较高,但这些车牌识别系统获取牌照时对环境要求较高,在一些环境复杂的地方识别率比较低,存在识别精度低、识别时间过长等不足,所以我国的研究的车牌自动识别技术还有很大的上升空间。研究课题主要研究使用的设备是一个带有TFT的OV7670摄像头让它去自动采集当前车牌图片信息,当前的车牌信息锁定成功后会不断有一个声音进行提示,STM32为一个主控控制芯片,来分别负责车牌数据的采集处理,最后将当前采集的车牌图片信息通过进行二值化数据分析、识别当前车牌

10、显示区域、字符符号分割、字符符号匹配等多个步骤,最后可以获得当前车牌的正确识别位置信息,并通过一个TFT的实时图像显示当前所在摄像头上采集的所有车牌识别信息。识别成功后会进入计费页面,按下K2界面则返回识别界面,再按下K1后进入计费界面。并通过TFT实时显示当前摄像采集的车牌信息。识别成功后会进入计费页面,按下K2界面则返回识别界面,再按下K1后进入计费界面。系统设计采用5v直流电源通过5vAMS1117芯片通过转换功率为3.3v直流电压为整个电控系统进行供电。最后完成对整个系统功能实现。具体流程如下图1所示。图1车牌识别流程图、系统的整体研究方案(一)系统的整体设计方案晶振模块本课题研究的基

11、于STM32F103RCT6车牌识别系统主要通过带有FIFO的0V7670摄像头去采集车牌信息,STM32芯片来负责进行对数据的处理,最后将获得车牌的识别信息,并通过TFT实时显示当前摄像采集的车牌信息。系统主要组成包含控制硬件和系统软件两个几大块,硬件主要以系统设计的几个组成部分模块加上去分别进行的来介绍,如主控电源模块,主控控制模块,图像数据采集处理模块,TFT图像显示处理模块,声光图像提示处理模块等,软件这一部分以用于图像采集处理的几个部分的来进行分别的来介绍,如一维图像数据采集处理程序,二维数值化图像处理程序,识别好的车牌显示区域,以及进行字符串的分割和其他字符串的匹配。车牌识别系统的

12、整体框图如下图2:电源模块STM32图像采集模块主控模块TFT显示模块复位模块声光指示模块图2车牌识别系统框图(二)单片机选型方案方案一:STM32具有高性能、低功耗,引脚与IO口的不同型号之间区别很大其中STM32F103ZET6型号包含144引脚、112个10口,10口采用23.6来供电。而STM32F103RCT6型号仅有64个引脚和51个IO口,24个定时器。就是因为它的性能强大,所以大部分的人会选择它。方案二:DSP经常用于处理数字信号,集成度高,运算快,可以在接收模拟信号的时候还可以将模拟信号转换为数字信号。所以在运算能力上强于其它的。而且DSP对使用的要求较低,受其它方面的影响小

13、。但是它的缺陷在于必须要进行模数转换而且采样频率范围会有一定的限度。方案三:STC89C52单片机低成本,低功耗,内部包含一整套位处理器,可以对特殊功能寄存器的某位直接进行置位、清零。可在0Hz静态逻辑下进行操作,尤其是断电后,RAM中内容还可以被保存。本次设计的相关功能,因为设计对芯片的性能要求较高,所以相比较而言STM32会更适合。所以选择STM32为主控。(三)显示模块方案方案一:LED数码管通常用来显示数字、符号,由七个LED小灯的8字形组合,控制每个灯的亮灭来显示需要显示的字符,数码管的工作电流位3-10mA,最大承受电流为30mA。优点是显示清晰,售价低,但缺点也很明显,占用I/O

14、口资源较多。方案二:LCD1602液晶主要用来显示数字、字母或特定的符号、图形。而且体积和质量比较小,对I/O口的占用资源较少,驱动的程序也相对简单。方案三:TFT-LCD为2.8英寸的TFT-LCD屏,尺寸大小为50*69.2*2.4mm,分辨率为240*320能够满足车牌信息的显示和识别结果展示。TFT-LCD共有34个引脚,其1-5号为控制引脚,即CS、RS、WR、RD、RST,连接单片机的PC9,PC12,PC11,PC10,PC8引脚;单片机与TFT之间数据的发送与读取主要采用的并口方式。因为此设计中需要显示车牌,计时,计费,图像,需要显示图像,数码管和LCD1602无法实现要求,所

15、以选择TFT-LCD液晶。二、系统硬件设计一)单片机最小系统模块STM32最小系统是由主芯片,晶振电路,上电复位电路。其中按键复位控制电路主要有的用来用于处理触控系统可能遇到各种异常情况,当系统按下带有复位电路按键的按钮时候,系统自动重新回到系统初始化的工作状态,复位电路原理是认为,电路中主要采用的技术是按键自动复位,电路与触控芯片的低端NRST引脚交互相连,原理上就是当复位按键,再次按下后,NRST与芯片低端引脚相连即可完成按键复位,其中触控电容的复位作用主要有的作用之一是抖动消抖,防止电容在触摸式按键产生时的误操作,一般其在按键上的闭合大约大概需要10毫秒,但是由于电容两端的工作电压不会突

16、然变化,可以有效率的防止其在抖动时的产生误操作。可以有效防止抖动时的误操作。晶振时钟电路即时叫闹钟晶振电路主要就是负责为整个主控板的芯片设计提供一个系统设计时钟,整个系统设计工作系统都应该是直接围绕这个系统时钟电路进行设计工作,相当于整个设计工作系统的一个心跳。最小系统模块电路如图3。VSSAVDDAPAO-WKUF12VBAHPKR(P(4/OS132INPC5OSC32OUP130/OSCINPDl/OSC1OUTNRS1X0寸r-JLIfL-rnrj9离寸n-jrio*oViEJri芒芒XI二0d4746PBI345PAI244PAI43PAI(J42一PA941PA840l5C939l

17、5C83837卩C636一PB15351143411333F3I23图3最小系统模块电路图5TFT-LCD引脚图 (二)液晶显示模块系统中使用的显示模块为2.8英寸的TFT-LCD屏,用来显示摄像头的实时照片,以及最终识别出来的车牌信息该芯片的的驱动IC为ILI9341,尺寸大小为50*69.2*2.4mm,分辨率为240*320能够满足车牌信息的显示和识别结果展示。实物图如图4所示。图4TFT-LCD实物图TFT-LCD共有34个引脚,其1号引脚至5号引脚为控制引脚,即CS、RS、WR、RD、RST,分别与单片机的PC9,PC12,PC11,PC10,PC8引脚相连;TFT-LCD数据引脚为

18、DB0号引脚至DB15号引脚分别与主控芯片的PB0至PB1号引脚对应相连接,单片机与TFT之间数据的发送与读取主要采用的并口方式。引脚图如图5所示。液晶显示模块电路图如图6。U3357P11131$1?V?21232527小31WI!朋TDBilIUlH5DB7DB!?DB101LBILDH12IB13DBHOB15SDCSOLVDDvnuCrNDNfMTSOW)飯PENFCSTCSCLK1G81012bl16送20i12426283052342TFTTLT934128104图9OV7670接口电路 图7OV7670实物图 VBAI13时C4HF30卩FGND|pPC132PC143PC154

19、PDO-1*(.PCIPC2二10:PC3_IlS1_GND,|+*C612,IT1IH】(M2VBAIVDD2PCI3/TAMPER/RTCVSS2PC14/OSC32INPA13PC15/OSC32OUTPA12PDO/OSCINPAUPDI/OSCOUTPA10NRSTLQFP64PA9PCOPA8PCIPC9PC2PC8PC3SrM32H103RCrr6PC7VSSAPC6VDDAPB15PAO-WKUPPB14PAIPB13PA2PB12PAO_I4_PAII5FA厂旷4846PB1345fAI244PA1143FAIO斗2PAg41I1A840、9PCS3837PC636PB153

20、5PB143斗出1333F312寸49I寸OPC1I3PCS5PB17PB3PB51PB7】3PB935PB1IPB13一】厂PB1521x.12325TT3133PC9CSRSWRRDRSrrDBQDB1DB2DBSDB4DB5DB6DB9OHIODB11DBI2DBI3DB14DB15SDCSBLVDDVDDGNDGNDNCM1SOMOSIPENFCSICSCLK13二ZgI2pB0飞PB2Ft一ubi_2一卩二14忸iz6TPBT2PuPBl1二竝VCC3.3Vzo7Jr吉32GNDTHILI93412.8图6液晶显示模块电路图(三)图像采集电路设计系统的主要图像信号采集处理模块主要采用

21、的软件是一个OV767O,现如今相机市面上主要模块包含两种,一种也就是需要带有一个FIFO和不要携带的,带一个FIFO的操作比不带的操作价格可能要贵一些,从实际使用操作难易度上来讲只要携带一个FIFO的比不带要携带的操作要简单很多,原因主要在于OV7670的照片时钟输出速度已经可以直接达到24m,但是大多数数码单片机的各个IO口时钟是无法直接达到这个要求,直接匹配整个单片机的各个IO口时钟速度,不过这样的话可能会直接导致相机照片高度失真。然而带FIFO的则不需要考虑,FIFO可以充当缓存区,使用者只需要考虑数据的读取就可以了。摄像头(OV767O)实物图如图7。电路上0V7670的SIOC和S

22、IOD号引脚,为初始化引脚,分别与单片机的PC6、PC7相连接,D0-D7引脚为摄像头数据引脚,接单片机PA0-PA7,以并口的方式读取摄像头数据。VSYNC引脚是摄像头帧信号引脚,接单片机引脚PC0中断,通过单片机中断来检测帧信号。FIFO_WR、FIFO_WRST、FIFO_RRST、FIFO_OE、FIFO_RCK分别接单片机PCI、PC5、PC2、PC3、PC4引脚,是单片机控制摄像头上面的FIFO芯片用的。(摄像头的数据是先保存于FIFO芯片里面的,单片机通过读取FIFO芯片数据来获取摄像头数据的。)摄像头(OV767O)实物图如图7。摄像头(OV767O)引脚图如图8。接口电路图如

23、图9所示。3.3VU2VCCS1O_CS1O_DVSYNCIIRHFD7D6D5D4D3D21)1DORESETPWDNSTROBEFIFORCKnrowrnroon卜hOWRS1HIK)RRSIJ46用OV7670witbFIFO图8OV7670引脚图z一omi寸ddHe_dddddc_e_c_damCICIABod二odZEgd笆寸Rdst9HdZHdOHOOmgmd6HdrnSSAVBAICIJ2Tcm-PD16PC154C-lDO530pF=pciPAlCHPAClgPACTeTGND-I|lilVCC3.3VI_IVBA1PCB/TAMPER/RTCPC14/0SC32INPC15/

24、OSC32_OUTPDD.OSCINpdloscourNKSlPCDPCILQHP64PC2PC3VSSAVDDAPAO-WKUPPAIPA2STM32F103RCT6VDD2VSS2PAPPA12PAUPAICPAgPA8PC9PC8PC7PC6PB15PB14PB13PB1246PBL345PA1244PAU43PA1012IA941-PA840lJ(?939PC838PC737PC636PB1535I5B14J4013331*B12VCC3.3VU2T丨44riflflrrr、lf:iSf-1冷i,rz.r-339bJJriH二:-25dd寸S9Z寸中O签H签EEFPC63PCO5PA7

25、79PA311PAI13vl15pci-17PC?21vccSIOcVYNCD7D5D3DIRESETSTROBEFIFOWRFITOWRSTGNDSIODHREFD6D4D2DOPWDNFITORCKFIFOOEFITORRSTGND2GNDOV7670withFIFO 四)按键电路设计按键的按下单片机会将控制相关引路一脚默认为是一个高电平,当一个按键再次按下后,单片机的两个相关引脚则自动变成一个低电平。进而可以实现对系统的手动程序输入。在没有出新的车牌号前,按下k1可同时查看已经自动识别显示出的车牌计时和收费信息,(模拟自动停车场),识别出新的车牌后,显示出的车牌计费信息后,需要同时按下停

26、车按键点击k2,方可自动返回到车主系统界面。按键电路原理图如下图10。VBA1龙12dsGd二udM-kst笆TradSHdfHd010003HHd6HdESSAECIQA47PCI3/TAMPER/RTCVSS2PC34/OSC32INPAI3PC15/OSC32OUTPAI2PDD.OSCINPAI1PDI/OSCOUTPAICNRSlLQFP64PASPCOPA8PCIPC9PC2PCSPC3V8SASTM32F103RCT6PC7PC6VDDAPBI5PAO-WKUPPB14PAIPB13PA2PB12r-i-jO=42246PBI345PA1244PAU43PA1042PA941PA

27、S40PC939PCS38P(三)实验分析系统实验分析部分主要是展示车牌识别系统的整个功能,首先需要给整个系统进行供电,系统采用5V供电经过电源电路转换成3.3V给整个系统供电,通电后按下电源开关,可以观察到整个液晶屏幕显示正常。将摄像头对准车牌,这时候通过显示器检测当前的显示图片以及采集信息,将车牌的位置对准蓝色的区域内,系统会对车牌信息进行一系列操作将最终的识别结果展示在屏幕的下方。识别成功会进入计费页面,按下K2界面则返回识别,再按下K1后进入计费。这是车牌号为苏B.88888的车辆,这是还没有按下K1的状态,只是识别出车辆的牌照还没有进行计时收费。如下图22所示。图22识别图这是车牌照

28、为苏B.J92P6的车辆,这是按下K1,进行计时收费,时间为0.12,收费是0.96。如下图23所示。图23计费图结论基于STM32单片机的车牌识别系统主要包含STM32主控芯片,TFT液晶显示模块,摄像采集模块(OV767O),指示灯模块,电源模块等。系统以STM32F103RCT为主控芯片,主要负责数据的处理,摄像头采集当前车牌,TFT实时显示当前摄像采集的车牌信息,识别成功会进入计费页面,按下K2界面则返回识别界面,再按下K1后进入计费界面。整个识别过程包含五个过程,分别为图像采集、二值化分析、识别车牌区域、字符分割、字符匹配。系统完整的工作流程为,系统采用5V电源通过AMS1117芯片

29、转换为3.3V电压为整个系统供电。然后利用STM32F103RCT控制OV7670摄像头采集图像,通过模式识别,匹配,最后获得车牌信息以及计费在TFT液晶屏上进行显示,最后完成对整个系统功能实现。致谢本次毕业论文及其设计在老师和同学的帮助以及自己的认真努力之下终于接近尾声了。从另一方面这也意味着我们也要真正的步入社会了,大学三年如白驹过隙匆匆而过来不及细细享受就已经走到了毕业。在这里要感谢我的导师金薇老师。金薇老师是一个认真负责的老师,即使平时自己的工作非常的忙碌但是在我做论文的每个阶段都悉心的指导我去一步步完成,从最开始的三表到最后的论文完成中间有过很多次的修改,每一次都是陈丽老师认真讲解告

30、诉我哪个步骤不够严谨需要改善并且传授了我很多丰富有用的知识,在学习的过程中也是亦师亦友。在此再次感谢我的毕业指导老师,她认真的工作态度以及孜孜不倦地诲人精神都使我不断的想要向他学习。十几年的求学路好像终于走到了尽头,回顾校园生活仿佛还在昨天,有欢笑有苦涩,但不论过程如何我们都应该感谢求学路上遇到的每一个人,老师的悉心教导同学的热情友好都使我们在这条人生路上受益匪浅。除此之外我们更要感谢我们的父母,是他们让我们有了体验校园生活的机会,也是他们才让我们有了不一样的精彩人生,更是他们让我们知道了无论风里雨里家永远在等你。未来虽然很迷茫,但愿我们不负父母不负自己不负时光。参考文献1肖骁,戈文祺.电气传

31、动系统中单片机技术的应用解析J.中国标准化,2017(22):250-252.赵明泽如何利用智能交通缓解城市拥堵J.城市建设理论研究(电子版),2012陈学保.车牌字符识别算法的研究D.2013.5徐国强.车牌自动识别系统的设计与字符识别算法研究D.成都:电子科技大学,20104刘祺,王银玲,吴林恒.基于STM32的图像采集与显示系统的研究与设计J.数字技术与应用,2012卢少鹏.基于stm32的车牌识别设计与研究D.兰州:西北师范大学,2015郭玉锦基于压缩感知的模糊车牌图像预处理及其识别研究D.西安:长安大学,2015杜媛基于图像分割与多特征模型的车牌识别算法J国外电子测量技术,2018,

32、37(8):20-24.周雷,苏文斌,李鹤.基于STM32单片机的简单形状识别J.数码世界,2016(06):79.刘立伟,谷学静.复杂光照条件下车牌定位算法研究J.信息通信,2018(08):34-35.郭玉锦.基于压缩感知的模糊车牌图像预处理及其识别研究D.西安:长安大学,2015.马永慧车牌识别系统中车牌定位与字符分割的研究D.太原:中北大学,2013.薛倩基于字符块提取的车牌字符分割算法J.河南科学,2014,32.附录1原理图VCC3V|-GNDOt-OOHaoHd6HdOV7670withHl()PC63rcu5PA77PA?9PA311PAI13一1-7PCI19PC521STO

33、CstcnVSYNCHRHFD7D6D5D4D3D2DiDORESETPWDNSTROBHriroRCKFITOWRFIFOOErirowrstrirorrst斗PC768PAC10PA.412PA214PAO1618PC420FCS22PC2mrIo6Lr.ir.r,ir,寸PC132PC143PC154PDO5PDl67VBAl1PCO8叱】厂PC2IOPC3_I1寸一芒ivtlor.二udEd8t寸d98dLHd05QMm僉rnooVBAIPC13/TAMPER/RTCPC14/OSC32INPC15/OSC32_OUTPDO/OSCINPDI/OSCOUTNRSTPCOPCIPC2PC

34、3VSSAVDDAPAO-WKUPLQHP64SIM32B103RCT6PAIPA2-OQ-SSA二HdOst曇OHdKML寸SSA-rir-JC-4CNarrrirrr”、-flr-9riJ二r-l0二PC1I3PCS5PB17PB39PB5IIPB713PB915PBll17PB1319PBI52123CSRSWRRDRSrrDBODBlDB2DB3DB4DB5DB6DB7DBSDB9DB10DBl1DBI2DBI3DBl4DBI5SDCSBLVDDVDDGNDGNDNCM1SOMOSIPENFCSICSCLK.2PC124PC106PBO8PB210PB412PB614PBS16IBIO

35、18PBt220PB14222-1K3E.石:可:对.yCNCN亠.:._t 附录3实物图附录4源程序#incluckrstm32flO)c.hr#inclutkrstm32flOx:_it.hri#incluckled.tiri#incluckkey.h#incluckuiiairt.hr,#iricludlerdelay.tin#includelcd.tinincludenov7670.h#inclutkrstring.h#inclutkrbsp_ssp8266.hi/#defireWIFITIIVl_TimpRac_tluG=O:/定义车牌蓝色区域的横向最大值和最小值vul6kl=0Pk

36、kl=Ork2=Orkk2=0Pk3=-Orkk3=-Ork4=Orkk4=Ork5=Drkk5=Drk6=Drkk6=Drk7=Orkk7=Or聽电八个字符边界externvui&Table&300;/所有字符集(8*2丘)鬥50=5400字节externvuiBtalble_0150;/字符玄测试用externvu8-table_yu32;/渝字externvm&table_miri32;/闽字externvuBtable_lu32|鲁字externvu8tabl已_曲已孑2;浙字externvu8table_shan32;陕字externuu8table_cuari32;/J11字vuS

37、R_a=0rG_a=0rB_a=D;/阈值vu8talble_picture15C/5E义保存團片的数组table_charl3b=0AJ3J5J&,7JJ9f,A,;B,J,C,J,D,J,E,;F,J,G,?H,/l,;J,;K,J,L,;M,/N,J,O,J,P,J,Q/RVSAVUW/W/XVY/ZJ;VL&t3bk_char_char3q=l0,T;273,#,4,J,5,f,G,f7,J,8,J,9,A7B,J,C,J,D,J,E,J,F,J,G,f,H7l7J,J,K,J,vu8table_card518=保存5个车牌的二维数组p稠胞0口咄/最后一位保存时间am。卫QLam。卫Q

38、L(WgCWL(WgCWL;vu8tim3_num=O;/Tlkl3分钟计时vuStable_cardMeasure7;/iJ!i|量的车牌结果voidShow_Card(vu8i);显示第几组车牌voidSHiow_Title:);/B7F标题voidMYRCCDelnitfvoid复位并配置向量表NVICInitTypeDefNVICnitStud:ugRCC-APB1RSTR二Dx0000000D;/ft位结束RCC-APB2RSTR二0 x00000000;RCOAHBENR二0 x00000014:睦眠模式闪存和SRAM时钟使能.苴他关闭.RCOAPB2ENR=DstOOOOOOOO

39、;设时钟关闭.RCOAPB1ENR=DjcDODODDOO;RCC-CR|=OstOOOOOOOl;使能内郃高速时钟HSIONRCC-CFGR&二DxFSFFOOOO;!复位SWl:01FHPRE3:0FPPREl2:0rPPRE22:0FADCPREl:0FIVlCO2:aRCC-CR&=DstFEF6FFFF;丿廈位HSEQNfCSSONFPLLOI4RCC-CR&=DstFFFBFFFF;/廈位HSEBYPRCOCFGR&=DkFFSOFFFR复位PLLSRC,PLLXTPRE,PLLMUL3:0andUSBPRERCC-CIR二CMXKXKXXX);关闭所有中断/*EnabletheT

40、IM3globalInterrupt*/NVICmit帥iKtue.rMC:JRQChmnnE二Tlh/IBRQri;/AIM3中断NVICnit5tiKl:LJE.hrVIC:RQChQnriRlPEEniptionPioity=0;先占优先级0级NVICriitStrudu巳NVICRQCh3nriEl5LjbFiQrity二3;从优先级弓级NVIC_lritStnjcture.hVIC_IRQChannelCmd=ENABLE;IRQ通道被使能NVIC_lnit(&MVlC_lnitStructureJ;根据NWCnitStruct中指定的参数初始化外设NWC寄存器voidStm32_C

41、lock_lni-t(vu8PLL)“系统时钟初始化国数plI:选择的倍频数,从2开始,最大值为1&unsignedchartemp=0:MYRCC_Delrit():/M位并配置向量表RCC-CR|=Ox00010000;外部高速时钟使能H5EONwhil(!(RCC-CR17)7/5待外部时钟就绪RCC-CFGR=DKD&D)DaOO;/APB1=DIV2;APB2=DIV1;AHB=DIV1;PLL-=2;/iS消2个单位RCC-CFGR|=PLL18:设置PLL值216RCC-CFGR|=116;/PLLSRCONFUXSH-ACR|=0 x32;/FUkSH2个延时周期RCC-CR|

42、=0 x01000000;/PLLONwhile(!(RCC-CR25);/待PLL锁定RCC-CFGR|=Ox0D000002:/PLL作为系统时钟while(temp!=0 x02等待FLL作为系统时钟设置咸功temp=RCC-CFGR2;tempSi=-0 x03;voidLED()LED指示灯-扌昱示GPIOWriteBit(LEDl_GPIO_PORTrLED1GPIQPIWrLED1聾*7);LED_flag=LED_flag;voidData_LCD_Display()/规显示vul6a=0rb=0;LCD_SetWindows(Dr0P32Dr340):/ig置显示窗口GPIO

43、_WriteBit(LCD_RS_PQRTrLCD_RS_PINrl);/标志:数据写人while(GPIO_ReadlnputDataEit(GPIOCrGPIO_PirO=l);GPI0_WriteBit(FlFO_WRSTPORTrFIFO_WRST_PINfD);GPI0_WriteBit(FlF0_WRST_PORT,FIFO_WRST_PINf1);GPIO_WriteBit(FIFO_WR_PORTFFlFO_WR_PIN,1);while(GPIO_ReadlnputDataEit(GPIOGGPIO_Pin_0)=Ojjwhile(GPIO_ReadlnputDataBit(

44、GPIQC,GPIO_Pir_D)=l);GPIO_WriteBit(FIFO_WR_PORT,FIFO_WR_PIN,0);FlFO_R&setRead_Addr();for(a=D;3240;a+)Ifor(b=0;bBRR=14:AA=GPIOA-IDR;GPI0C-6SRR=l4;GPIOC-BRR=14;BB=GPIOA-IDR&DxDOff;GPIQC-B&RR=14;color=(AA-QDR=color;GPIOC-BRRGPIOC-BSRRvoidRGB_HSV(vul6numV/RGB565转HRfloatmax=O.D&rimin=0.00;vu8r=DTg=0rb=D;

45、r=(numll*255/31K(num5)&(h3f)*255/63;num&0 xif)*255fll;niax=r;miri=r;i九沪=mmxmsix=g;if(b=ma)cmax.=b;讦(=minmin=g;ii(ltx=ifninmin=b;V=100*max/255;/$|换为百分比S=100(max.-min)/ma)c;/ir大100彳咅显不if(maK=H二fe-bj/tmax-min)*60;ifmax=dH=12(Hr|/(imax-minJ*6a;if(max=b)H=2404-(r-)/(max-minJ*6Q;if(H0)H=H+36O;严车牌字符复制出的图片宽

46、2护高50250=1200点1200/8=150字节数据即每行可提取出孑个字节的字模数据即胪$24个像素点s&ssssessessesessessssss尊库宜总尊尊库尊尊库宜車章尊库尊尊库宜尊章尊卓尊直童卓坯卓直直直电直卓总章童直直直直卓直童直珀直倉章电頊直倉首倉倉首电审套倉首倉倉甘电倉章倉頊倉倉章电頊直倉首倉倉首电审套倉首倉倉甘电倉章倉頊倉VvoidPicture_Sl:ring()/图片-遴J组table_pictureISO字节vul6a=-0Fb=0Fnuml=0;for(ap0;a150;a4-i-)/i/归零table_picturea=0 x00;for(a=0;a50:a+)

47、/50行for(b=0;b24;b+/24排numl=LCD_ReadPoint(b4-296ra+191);if(numl=Oxffff)table_pictureb/&+aSc3|=(l(7-b%&);/(l(7-b%&)将变换在单字节中的相应位置上。vu8MoShiShiBie_All(vu8begin,vu8end/字符匹配,模式识别,选择性匹配begiri-eindvul6num_5ave=0;vuSa=Drb=Dre=Ora_save=Of5tl=Or5t2=Drsl=Ors.2=0;irrtruml=0;f&r(a=b&giiri;aend;a+-i-)/3S即橡素ruml=0;

48、for(b=0;bcl50;b+)/每个字符包含了150个字节字模数据;24*50=1200.1200/8=150字节。5tl=table_piCturebl;得到的图片装换的数组st2=Table15O*a+b:for(e=0;e8;e+)逐个字节逐个位进行比较s2=st2&(le);ifsl=52)numl+;丽目同则增加if(sl=s2)numl-;/p同贝U碱少if(nuim_savenuml)num_save=nuiml;a_save=a;LCD_ShowNum(5Dr220rar2);显示匹配的字符是V调试用ALCD_ShowNum(70P220F04):/显示匹配的正确橡素数v调

49、试用LCD_ShowNuni(70P22&rntiml.J4):/S示匹配的正确像素数LCD_ShowNLjm(12DP22DJrium_save卫);匹配的最大值显示returnasave;voidString_Pictur&:组-溜片vul6a=Orb=Dre=Orinuml=O;for(a=D;a50;a+)/&0排Ifor(b=fl;b*=24;b+/24彳丁Iifftalble_0b/8+a*3&(lp-b%8)Inuml=0 x&00:LCD_DrawPoint(b+296,34-191Fnunil);/画点voidWordShow(vu81,16x1116y)显不汉字16*16v

50、ul6a=Orb=Ore=Orriijml=a;vu8tablel32=D;i_F(num=l)for(a=0;a32;ai-i-)tablela=table_yua;i-f(num=2)for(a=0;a32;a)Itablela=table_mina;if(num=3)for(a=0;a32;a+)tablela=table_lua;ii:(num=4)for(a=0;a32;a+)tablela=table_zhea;ii(num=5)for(a=0;a32;a4-i-)Itablela=table_5hana;/AlInotescanbedeletedandmocl币ed51*/for

51、(a=0;a-16;ai-i-)for(b=O;bMinblue;b-)/左右界线的扫描if(TableChaingePoiint_320b=0)/间隙分割根据HSV比较跳变点为0代表空隙for(a=Min_ChangGPoint_2iO:aMa;t_ChangePoint_24-0:a+4-)/划线-调试用车牌高度一样的线LCD_DrawPoiint(braH-l,DxDDlf);i+;b-;/AIInotescanbedeletedandmodified5*/i-;LCD_ShowrJum(3Dr220rir2);显示分割的字符个数卜1,8是正常值returni;voidGuiYi(vul

52、6lcPvul6kk)/归一化24*50vul6a=0rb=Dre=0;vul6mum二氐7保存读取橡素vu8Mo=Oru=0;/5整和取模vu8ruml=Drrum2=0rinum3=0;vu8Mo_l=0;/vu8Min_24-0=0,Ma心如乜/弁匡紧字符后的上下限if(k-kkh25)洌匡紧字符IV1in_240=IVlin_ChangePoirit_24O+l;牌高度下卩艮IVlax_240=IVlax_ChangePoirt_240-1;车牌高度上限whil&(Mir_24CM-i-)/框紧后,得到:Mir_240for(b=kk+l;bk;b+/kklIinum=LCD_Read

53、Poini:brMim_24Oj;if(num)break;ifjnumjbreak;whiIe(IVla)c_24.O后!彳导至l|:Max_240for(b=kk4-l;bk;b4十klIriLm=LCD_RGadPoirit(brMax.240):iF(inuim)break;if(nuim)break;Mir_24O-l;Max_240+=2;LCD_DrawPoint(kkrIVlin_24OTOxffff);/LCDDrawPointfkrIVlax_24OJOxffff);/显示复制的图片num3=0;for(a=Min_2404-l;aIVlaM_24O;a-n-)/rfij度

54、num2=D;+1for(b=kki-l;txk:宽度num=LCD_ReadPoint(bFa);LCD_DrawPoint(271-k-kk-1)4-num2F191+num3Pnum);/M制像素值rium2+;nuim3-n-;rium3=01;图片放大算法:最近邻插值先将宽度放大,后将长度放大宽2輕高50将原有图宽度的橡素点数与目标加像素点进行相诚Mo=(24-(k-kk-l)/(k-kk-l);/模即可以将放大后比原图宽度多的像素点插在每个原图像素点的个数为MoYu=(24化*41沟k-kkl);取余ifYu!=OMo_1=24/Yu;/均个像素,插有一个像素,Yu:代表需要在原图

55、的宽度上插Yu个像素点才能达到目标的24个像素/LCD_ShowNum(30r2DrMof3);/fl示模v调试用/LC:D_5hcwvWum(7U2XYu;显示余/LCD_SowNum(100r20r(l:l-kkl),3);/fl7r:值for(a=Min_240t1;aMa_240;a放大为24橡素高扫描num2=0;Yu=(24-(k-kk-l)%(k-klc-l:/klfor(b=kk+l;txk;b+4-)/kkl+1muifn=LCD_ReadPoiLCDDrawPoint(271-i-nuni2P191+num3Jnuni):num2+4-;Mo=(24-(k-kk-1)J/(

56、k-kk-1);/模Allnatescanbedeletecandmodified*/if(Yu匸0)横轴拉长if(inum2-i-l)%Mo_l=0&num21=1/该赫人的地方LCD_DrawPoint(2714-num2P191+num3Jnuni);Yu-;num2+4;LCD_DrawPoirt(271r191PDx07E0):/S记点,4个顶角LCD_DrawPoint(271F2WJDx07E0);LCD_DrawPoint(295r191rDx07E0);LCD_DrawPoirt(295r240JDx07E0);/炒轴拉长if(Max_24.0-Min_240)t_24O-M

57、in_2A0+l);/余h/lo_l=50/Yu;HLCD_ShowNum(3DA70,M0,3);/c调试用/LCD-ShowNuml/DA/Ou);/LCD_ShowNum(l00r170r(VlaM_ChangePoint_24O-MiriCharigePoirt_240r3);/riuim2=0;for(a=0;a(M3x_240-Min_24D);a+4-)/复制图像考虑范围是否需要迸彳亍修正?f0r(b=271;b=295;b)/271开始复制,295才结束ntim=LCD_ReadPoint(bra+19L);LCDDrawPointfb+25r191+num:2,num;/复制

58、像素值rium2+4;while(Mo)for(b=271;b=295;b4-+J/271开始复制,295才结束num=LCD_ReadPoint(bra4-191);LCDDrawPoiint(b-i-25r1914num2gnu词;/M制像素值Mo;num24-+;if(Yu1=0)if(ff(nuin2+l)%Mo_l)=0)&(num2!=l)for(b=271;bMin_blue;b-)/由右至左识另l,获取各个字符的总水值while(TableChairePoint_320b=0)b-;/取第1个字符k两;T拱到字符的左右边界wh11e(TableChangePolnt_320b0

59、)b;kkl=b;找到字符的左右边界notescanbedeletedandmodified*/T17星四叨臺謝E丄孙铀島仿血羽甸)川-q(0冋叮茂艸!。用訓叫2)引半丄)引!卵uq=t?i谢土心蚩Sfcqql0E-!dae4DaNe)a|!I乐羽-q(gqO窈一弭旧討胡LiEqwiqE丄冋!1|Mi+/:L+q=/:-q(o=qo?E_!d3e433iqe)si!1E丄孙轨畀sg=)丄!-q(KqOEL*u旧曲恥叫,iqe丄罔!屮aT+/:L+q=E1最古E蚩曲?Z-qD=qOE_!OdaE4oa|qE)a|!qAAI心朗q(0qCS_lu!Oda3iiE43a|qEi)a|!4/Al+/A

60、-hq=/:-q0=阿伉一2!。/刖叫庐円总丄冋片爪1丄孙哦显SE応仙!-q(00)b-:kk4=b;whilefTabeChangePoirit_320b=0)b-;取第5个字符kS=tH-W+lwhile(TabeChangePoint_32Dlb0)b;Ick5=b;if(k5-kk5)4)/省略低于3个像素的位置while(TableChamg&Poirit_32Ob=O)b-;/k5=b4-l;/+lwhiIeTableCharePoint_320bX)b;kk5=b;while(TableChairePoint_320b=Ojb-iff取第丘个字符k6=bi-l;while(Tab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论