一、效果展示

①GUI界面:

②图像处理过程展示



( 注:系统可利用matlab界面识别显示和图像处理,并将数据发给Arduinio用于显示显示屏的内容+蜂鸣器+舵机打造全套的门禁系统)

二、系统流程图


图像处理流程图




建立模板库流程图:

三、Matlab部分代码

主程序:

    case {3,4}I = handles.I;%读取传输文件
%         figure;
%         imshow(I);imwrite(I,'输入原图.jpg');I = imresize(I, [480 NaN]);%改变图像尺寸宽为480
%         figure;
%         imshow(I);imgray = rgb2gray(I);%RGB转为灰度值imbin = imbinarize(imgray);%通过对I进行二值化,计算全局阈值输出二值图像I = edge(imgray, 'sobel');%边缘化
%         figure;
%         imshow(I);imwrite(I,'边缘化图.jpg');I = imdilate(I, strel('diamond', 2));%扩张膨胀,系数为2
%         figure;
%         imshow(I);imwrite(I,'膨胀后图.jpg');I = imfill(I, 'holes');%把扩张的洞填满
%         figure;
%         imshow(I);imwrite(I,'把holes填满图.jpg');I = imerode(I, strel('diamond', 10));%腐蚀图像边缘腐蚀把小于10的去掉
%         figure;
%         imshow(I);imwrite(I,'边缘腐蚀图.jpg');Iprops=regionprops(I,'BoundingBox','Area', 'Image');%图像区域属性,非常有用area = Iprops.Area;%计算像素的总数count = numel(Iprops);%返回数组元素个数为2个,找到两个对象会有腐蚀不全的maxa= area;boundingBox = Iprops.BoundingBox;%用最小面积的框框中物体
%%比较出像素最大的,即找到车牌的正确位置I=Iprops(1).Image;%调取找到的第一个对象
%         figure;
%         imshow(I);imwrite(I,'找到有效对象1图.jpg');I=Iprops(2).Image;%调取找到的第一个对象imwrite(I,'找到有效对象2图.jpg');for i=1:countif maxa<Iprops(i).Areamaxa=Iprops(i).Area;boundingBox=Iprops(i).BoundingBox;endend    %%以上步骤都是为了找到车牌的位置I = imcrop(imbin,boundingBox);%自定义裁剪出boundingBox区域图像
%         figure;
%         imshow(I);imwrite(I,'裁剪有效对象图.jpg');%调整尺寸I = imresize(I, [240 NaN]);%变化尺寸,长变为240
%         figure;
%         imshow(I);%clear dustI = imopen(I, strel('rectangle', [4 4]));
%         figure;
%         imshow(I);imwrite(I,'图片剪切成高240.jpg');%remove some object if it width is too long or too small than 500%删除一些对象,如果它的宽度太长或太小小于500I = bwareaopen(~I, 500);%~I逆二值化,删除面积小于500的对象axes(handles.axes4);%确定显示位置imshow(I);imwrite(I,'最后图片.jpg');%%%get width[h, w] = size(I);%计算图片尺寸%read letter读取,下面提取的是找到车牌后的Iprops=regionprops(I,'BoundingBox','Area', 'Image');count = numel(Iprops);%找到所有数字个对象Code=[]; % Initializing the variable of number plate string.% 正在初始化车牌串变量I=Iprops(1).Image;%调取找到的第一个对象I2=Iprops(2).Image;I3=Iprops(10).Image;imwrite(I,'框取第一个对象.jpg');imwrite(I2,'框取第二个对象.jpg');imwrite(I3,'框取第十个对象.jpg');%         figure;
%         imshow(I);for i=1:countow = length(Iprops(i).Image(1,:));%分别提取图片列、行信息,宽oh = length(Iprops(i).Image(:,1));%高if ow<(h/2) & oh>(h/3)%h为图片尺寸文字占据车牌大概的大小不同地区的不同,满足条件输入数据库比对%disp(Iprops(1).Image);letter=readLetter(Iprops(i).Image); % 读取二值图像'N'对应的字母%      figure; imshow(Iprops(i).Image);Code=[Code letter]; % Appending every subsequent character in noPlate variable.% 在noPlate变量中附加每个后续字符。endend% handles.edit1.String = str(noPlate);
set(handles.edit1,'String',Code);%回传
end% Code = get(handles.edit1);%回溯
% disp('获得舵机');
% disp(Code);
String1 = Code(1);
%串口通信前的数据处理
if(String1=='陕')%disp('成功');Rt=strrep(Code,Code(1),'s');%置换字符串的字符disp(Rt);
elseif(String1=='豫');Rt=strrep(Code,Code(1),'y');disp(Rt);
elseif(String1=='辽')Rt=strrep(Code,Code(1),'l');%替换掉字符串第一位的字符disp(Rt);
elseRt=Code;disp(Rt);
end
pause(0.1);
Bit = '*'
Rt = [Rt Bit];
% disp(Rt);
%串口通信传输delete(instrfind({'Port'},{'COM6'}));
global u;
u = serial('COM6','BaudRate',9600,'DataBits',8);%设定相关的串口参数
fopen(u);
set(u,'BytesAvailableFcnMode','Terminator');
set(u,'Terminator','*');                    %设立中断
u.BytesAvailableFcn =@ReceiveCallback;
for k=1:1:3fprintf(u,Rt);pause(0.3);%时间间隔不宜过小
end

函数有:模板建立库+字符匹配函数(程序太多在2中)
(记录自用!)

利用Matlab与Arduino制作车牌识别的完整控制系统(1)相关推荐

  1. Matlab与Arduino车牌识别的完整系统(2)

    一.利用Matlab与Arduino制作车牌识别的完整控制系统,完成开门.显示.读取功能 详细资料已经打包→ 链接:https://pan.baidu.com/s/1Hn_-EvwhVlXxzde0K ...

  2. 基于MATLAB的多方法车牌识别识别系统【GUI,多方法,对比,语音播报,出入库,剩余车位】...

    一.课题介绍 该课题为基于MATLAB的多方法车牌识别识别系统,带有丰富的人机交互GUI界面.目前毕业设计选题中,传统的中规中矩的车牌识别不易得到高分,甚至过不了. 必须要在此基础上有所创新方得可以避 ...

  3. [点击快照]基于MATLAB的多方法车牌识别识别系统【GUI,多方法,论文,对比,语音播报,出入库,剩余车位】

    一.课题介绍*** 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.智能交通系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控.管 ...

  4. python代码示例百度云-python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  5. python不调包实现sobel_python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  6. matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统

    一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...

  7. 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板+语音播报)【含Matlab源码 1220期】

    ⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...

  8. 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板)【含Matlab源码 790期】

    ⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...

  9. 03系统多界面_基于MATLAB的多方法车牌识别系统[带GUI界面+万字技术文档+直播]

    一.课题介绍 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.智能交通系统通过车辆检测装置对过往的车辆实施检测,提取有关交通数据,达到监控.管理和指 ...

最新文章

  1. 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★
  2. 转-完成端口高效的三个原因
  3. 国家计算机二级申诉,CCF关于CSP-J/S2020第二轮认证申诉的通知
  4. cat、tac、more、less、head、tail、cut
  5. Linux 服务器性能参数指标总结
  6. IO多路复用之poll总结
  7. 前端学习(2004)vue之电商管理系统电商系统之阻止页签切换
  8. 使用requests模块简单获取数据
  9. python 识别 None,NaN,null,‘‘,‘ ‘ 等无意义的值
  10. 那些机器学习中无法衍生的强规则变量有吗?
  11. Bootstrap系列 -- 44. 分页导航
  12. leetcode 868. Binary Gap
  13. 2.(leaflet篇)leaflet加载接入百度地图
  14. JUC:06.CyclicBarrier栅栏
  15. HEX文件和BIN文件的区别及HEX的代码转换
  16. PAM-PDMDAAC聚丙烯酰胺-聚二甲基二烯丙基氯化铵/PEI-P(Asp-Hyd-ADR 聚乙烯亚胺-聚天冬氨酸
  17. Linux高级服务搭建
  18. Ubuntu18.04 + RTX2080Ti + CUDA +cudnn 环境配置
  19. WPE教学之-截取操作篇
  20. 常熟理工学院计算机专业排名2015,2019年常熟理工学院优势专业排名及分数线

热门文章

  1. 微信小程序登录注册demo+java服务器(二)
  2. 统计学常见数值统计公式
  3. 斯拉《引力动态理论》 超越爱因斯坦(转)
  4. 【莓知识】转载-blackberry语音拨号使用操作教程
  5. 机器学习 李宏毅 L38-Ensemble
  6. python爬豆瓣电视剧_python requests库爬取豆瓣电视剧数据并保存到本地详解
  7. 永恒python太变态了_【图片】【教皇】【永恒】Python 全方位评测【反恐精英ol吧】_百度贴吧...
  8. Attention九层塔:注意力机制的九重理解
  9. 电商项目之Mailgun邮件退信率升高
  10. 下了CSDN浏览器助手后,浏览器竟然直接摊牌了,不装了!