哈哈,进行本案例之前,先看看我的车库,苦笑?  苦笑?哈哈,看看就行……

车牌图像数据集



 

视频动态演示

视频观看请点击:基于Matlab通过GUI实现自动驾驶的车牌智能识别
<http://v.youku.com/v_show/id_XMzY0MDcxNTc2NA==.html?spm=a2h3j.8428770.3416059.1>



 

核心代码
通过Matlab的编程代码进一步了解系统的工作思路和原理。 (1)“请打开要识别的图片”按钮下调用的部分代码
[fn,pn,fi]=uigetfile('*.jpg','选择图片'); %交互式获得指定输入图片 I=imread([pn fn]);
axes(handles.axes1);%指定显示在句柄handles.axes1上 imshow(I); (2)“截取车照片”按钮下调用的部分代码
global var01 %定义全局变量 global var02 %定义全局变量 var02=var01; axes(handles.axes2);
%指定显示在句柄handles.axes2上 imshow(var02); (3)“方向矫正”按钮调用的部分代码 global var02 %定义全局变量
global qingxiejiao %定义全局变量 qingxiejiao=bianhuan(var02) %通过自定义bianhuan函数获取倾斜角度
var02=imrotate(var02,qingxiejiao,'bilinear','crop'); %imrotate函数是按照获取的角度进行矫正
axes(handles.axes4); imshow(var02); (4)“基于阈值转为二值图”按钮调用的部分代码 global var02
%定义全局变量
var02=im2var02(var02,graythresh(var02));%im2var02函数基于阈值,将图像转变成二进制图像;graythresh函数使用最大类间方差法找到图片的一个合适的阈值。利用这个阈值通常比人为设定的阈值能更好地把一张灰度图像转换为二值图像。
axes(handles.axes5); %指定显示在句柄handles.axes5上 imshow(var02);
var02=var02morph(var02,'hbreak',inf);%figure,imshow(var02);
%对二值图像的形态学操作(hbreak移除H连通的像素),提取二进制图像的轮廓
var02=var02morph(var02,'spur',inf);%figure,imshow(var02);title('擦除之前');
%spur移除刺激(孤立)像素
var02=var02morph(var02,'open',5);%figure,imshow(var02);title('闭合运算');%open执行形态学开操作(先腐蚀后膨胀)
global threshold %定义全局变量 var02 = var02areaopen(var02,
threshold);%figure,imshow(var02);title('擦除');
%var02areaopen删除二值图像var02中面积小于P的对象,默认情况下conn使用8邻域
 

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信