1 简介车辆车牌识别系统的基本工作原理为将摄像头拍摄到的包含车辆车牌的图像输入到计算机中进行预处理再由检索模块对车牌进行搜索、检测、定位并分割出包含车牌字符的矩形区域然后对车牌字符进行二值化并将其分割为单个字符然后输入JPEG或BMP格式的数字输出则为车牌号码的数字。车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。车牌识别单元对图像进行处理定位出车牌位置再将车牌中的字符分割出来进行识别然后组成车牌号码输出,再获得当前时间。通过出停车场时对车辆再次进行处理获得停车时间。2 部分代码%-----------------------------出停车场--------------------------- clc; clear all; [filename,filepath]uigetfile(.jpg,输入一个需要识别的车牌图像);% 直接自动读入% filstrcat(filepath,filename); %strcat函数连接字符串把filepath的字符串与filename的连接即路径/文件名 Iimread(fil); I1rgb2gray(I); I2edge(I1,roberts,0.15,both); se[1;1;1]; I3imerode(I2,se); sestrel(rectangle,[25,25]); I4imclose(I3,se); I5bwareaopen(I4,2000); [y,x,z]size(I5); myIdouble(I5); t % 滤波 hfspecial(average,3); dim2bw(round(filter2(h,d))); end % 分割出第二个字符 [word2,d]getword(d); % 分割出第三个字符 [word3,d]getword(d); % 分割出第四个字符 [word4,d]getword(d); % 分割出第五个字符 [word5,d]getword(d); % 分割出第六个字符 [word6,d]getword(d); % 分割出第七个字符 [word7,d]getword(d); [m,n]size(word1); %归一化大小为40*20 word1imresize(word1,[40 20]); word2imresize(word2,[40 20]); word3imresize(word3,[40 20]); word4imresize(word4,[40 20]); word5imresize(word5,[40 20]); word6imresize(word6,[40 20]); word7imresize(word7,[40 20]); imwrite(word1,1.jpg); imwrite(word2,2.jpg); imwrite(word3,3.jpg); imwrite(word4,4.jpg); imwrite(word5,5.jpg); imwrite(word6,6.jpg); imwrite(word7,7.jpg); liccodechar([0:9 A:Z 鄂津京辽鲁陕苏豫浙粤]); SubBw2zeros(40,20); l1; for I1:7; iiint2str(I); timread([ii,.jpg]); SegBw2imresize(t,[40 20],nearest); SegBw2double(SegBw2)20; if l1 %第一位汉字识别 kmin37; kmax43; elseif l2 %第二位字母识别 kmin11; kmax36; else l3 %第三位后字母或数字识别 kmin1; kmax36; end for k2kmin:kmax fnamestrcat(字符模板\,liccode(k2),.jpg); SamBw2imread(fname); SamBw2double(SamBw2)1; for i1:40 for j1:20 SubBw2(i,j)SegBw2(i,j)-SamBw2(i,j); end end %相当于两幅图相减得第三幅图 Dmax0; for k11:40; for l11:20 if(SubBw2(k1,l1)0 || SubBw2(k1,l1)0) DmaxDmax1; end end end Error(k2)Dmax; end Error1Error(kmin:kmax); MinErrormin(Error1); findcfind(Error1MinError); Code(l*2-1)liccode(findckmin-1); Code(l*2) ; ll1; end ttoc; %与文本文件数据对比 filefopen(Data.txt); while feof(file)~1 fidfgetl(file); if(strcmp(fid,Code)1) ficfgetl(file); end end fclose(file); fibdatestr(now); fiedatevec(fic); fiddatevec(fib); tsetime(fid,fie); aa{Code;num2str(ts);单位为秒}; msgbox(aa,车牌及停车时间);%弹出框3 仿真结果4 参考文献[1]赖特. 基于模板匹配及人工神经网络算法的图像识别应用——MATLAB实现机动车牌号码辨识. 智能建筑与智慧城市 11(2017):5.部分理论引用网络文献若有侵权联系博主删除。
网站建设
高端定制
企业官网