具体代码见https://github.com/asdf854/-.git
一、任务描述
选择的内容是车牌识别。完成了12项功能分别为导入图片、图像灰度化、边缘检测、腐蚀、闭运算、形态滤波处理、车牌定位、车牌提取、车牌裁剪、车牌识别、语音播报、退出功能。
二、设计思路
设计总体思路为车牌的二值化,提取车牌,对车牌进行水平和垂直扫描出车牌的每个字母,然后将字符模板与裁剪出的每个车牌字母进行模板匹配,最后得出识别结果。
三、功能模块
1 图形的GUI设计
1.1算法原理
GUI(Graphical User Interfaces)中文名称为图形用户界面,是一种面向对象的设计,实现用户与计算机的交互。GUI模块是MATLAB的重要组成部分,因为在GUI设计时,MATLAB提供各种控件,比如菜单、文本框、按钮等,并且可以直接修改控件的属性,极大地方便编程。
GUI界面为一个图形界面,图形内有各种控件,对这些控件的操作是通过句柄(handle)完成,每个控件都有一个句柄,并且是唯一的。通过句柄选中对象,然后修改该对象的属性,完成对控件的精确控制。GUI给出很多控件,如图7-1所示,常用的控件有按钮、单选按钮、复选按钮、坐标轴、静态文本等等,每个控件都可编写回调函数,可以选择触发回调函数的条件,比如单击鼠标、选择菜单等等。
考虑到要实现12个功能,就设计了大量的按钮和文本框和坐标区,对应的结果单独放在一个图片框中。
1.2验结果及对比分析
2 导入图片
2.1 算法原理
导入图片之前,应该要将文本框里面和坐标区里面的内容设置为空对象。使用set函数将其设置为[]。然后再使用uigetfile方法读取文件内容。将图片命名为file激活第一第二个坐标区,将原图显示在第一个和第二个坐标区。
2.2 算法设计
axes(handles.axes1); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes2); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes3); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes4); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes5); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes6); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes7); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes8); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes9); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes10); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes11); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes12); cla reset; box on; set(gca, 'XTickLabel', [], 'YTickLabel', []);
axes(handles.axes13); cla reset; box on; set(gca, 'XTickLabel