首页 > 化工知识 > 【图像识别】基于模板匹配算法实现车辆出入库计时matlab系统

【图像识别】基于模板匹配算法实现车辆出入库计时matlab系统

时间:2021-12-11 来源: 浏览:

【图像识别】基于模板匹配算法实现车辆出入库计时matlab系统

原创 天天Matlab 天天Matlab
天天Matlab

TT_Matlab

每天分享一点Matlab资料,一起成长进步。需要定制程序添加qq1575304183

收录于话题 #图像处理matlab源码 286个 内容

1 简介

车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像 输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌 字符的矩形区域, 然后对车牌字符进行二值化并将其分割为单个字符, 然后输入 JPEG BMP 式的数字,输出则为车牌号码的数字。车牌自动识别是一项利用车辆的动态视频或静态图像进 行车牌号码、车牌颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、 照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成 车牌号码输出 ,再获得当前时间。通过出停车场时对车辆再次进行处理,获得停车时间。

2 部分代码

%-----------------------------出停车场--------------------------- clc ; clear all ; [ filename , filepath ]= uigetfile ( ’.jpg’ , ’输入一个需要识别的车牌图像’ ); % 直接自动读入% fil = strcat ( filepath , filename ); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名 I = imread ( fil ); I1 = rgb2gray ( I );   I2 = edge ( I1 , ’roberts’ , 0.15 , ’both’ );   se =[ 1 ; 1 ; 1 ];   I3 = imerode ( I2 , se );   se = strel ( ’rectangle’ ,[ 25 , 25 ]);   I4 = imclose ( I3 , se );   I5 = bwareaopen ( I4 , 2000 );   [ y , x , z ]= size ( I5 );   myI = double ( I5 );   t % 滤波   h = fspecial ( ’average’ , 3 );   d = im2bw ( 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 word1 = imresize ( word1 ,[ 40 20 ]); word2 = imresize ( word2 ,[ 40 20 ]); word3 = imresize ( word3 ,[ 40 20 ]); word4 = imresize ( word4 ,[ 40 20 ]); word5 = imresize ( word5 ,[ 40 20 ]); word6 = imresize ( word6 ,[ 40 20 ]); word7 = imresize ( 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’ );   liccode = char ([ ’0’ : ’9’ ’A’ : ’Z’ ’鄂津京辽鲁陕苏豫浙粤’ ]); SubBw2 = zeros ( 40 , 20 ); l = 1 ; for I = 1 : 7 ;     ii = int2str ( I );     t = imread ([ ii , ’.jpg’ ]);     SegBw2 = imresize ( t ,[ 40 20 ], ’nearest’ );     SegBw2 = double ( SegBw2 ) > 20 ;     if l == 1 %第一位汉字识别         kmin = 37 ;         kmax = 43 ;     elseif l == 2 %第二位字母识别         kmin = 11 ;         kmax = 36 ;     else l > = 3   %第三位后字母或数字识别         kmin = 1 ;         kmax = 36 ;             end     for k2 = kmin : kmax         fname = strcat ( ’字符模板’ , liccode ( k2 ), ’.jpg’ );         SamBw2 = imread ( fname );         SamBw2 = double ( SamBw2 ) > 1 ;         for i = 1 : 40             for j = 1 : 20                 SubBw2 ( i , j )= SegBw2 ( i , j ) - SamBw2 ( i , j );             end         end         %相当于两幅图相减得第三幅图         Dmax = 0 ;         for k1 = 1 : 40 ;             for l1 = 1 : 20                 if ( SubBw2 ( k1 , l1 ) > 0 || SubBw2 ( k1 , l1 ) < 0 )                     Dmax = Dmax +1 ;                 end             end         end         Error ( k2 )= Dmax ;     end     Error1 = Error ( kmin : kmax );     MinError = min ( Error1 );     findc = find ( Error1 == MinError );     Code ( l * 2-1 )= liccode ( findc + kmin -1 );     Code ( l * 2 )= ’ ’ ;     l = l +1 ; end t = toc ; %与文本文件数据对比 file = fopen ( ’Data.txt’ ); while feof ( file ) ~ = 1     fid = fgetl ( file );   if ( strcmp ( fid , Code ) == 1 )       fic = fgetl ( file );   end end fclose ( file ); fib = datestr ( now ); fie = datevec ( fic ); fid = datevec ( fib ); ts = etime ( fid , fie ); aa ={ Code ; num2str ( ts ); ’单位为秒’ }; msgbox ( aa , ’车牌及停车时间’ ); %弹出框

3 仿真结果

4 参考文献

[1]赖特. "基于模板匹配及人工神经网络算法的图像识别应用——MATLAB实现机动车牌号码辨识." 智能建筑与智慧城市 11(2017):5.

部分理论引用网络文献,若有侵权联系博主删除。

天天Matlab

赞赏二维码 微信扫一扫赞赏作者 赞赏

已喜欢, 对作者说句悄悄话
最多40字,当前共

  人赞赏

1 / 3

长按二维码向我转账

赞赏二维码

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐