3.1 软件体系结构设计 本系统主要包括三个关键部分:车牌定位部分,字符切割部分和字符识别部分。本系统分为以下几个模块,为了明确各个模块的功能,现在各个模块主要完成功能进行简单描述: (1)预处理模块:对图片进行基于SVM的阈值化、滤波和形态学等处理,最后生成去除了大部分干扰的二值化图像。 (2)车牌定位模块:对上一步生成的二值化图像进行轮廓检测,并分级判断,识别出车牌区域并归一化。 (3)车牌切割割模块:对对归一化后的牌照图像进行字符分割,将分割好的字符图像归一化并保存。 (4)字符识别模块:读取待识别字符图像和标准字符库图像,完成两者的匹配,输出匹配度最高的模板字符。 3.2 用户界面设计 用户界面的设计: 功能界面,用户可选择车牌识别功能; 文件界面,用户可以查看已经导入的图片,可选择图片进行车牌识别; 预览界面,用户可看到当前进行识别的原图,识别后的车牌号。 界面跳转关系的顺序: 打开软件 -> 选择车牌识别 -> 打开文件 -> 选择识别的车牌文件,确定 -> 用户界面出现图片预览,下方显示识别出的车牌,右上角显示‘重新识别’按钮,识别不准确可重新识别。 用户界面的原型: 利用Java图形用户界面(GUI)使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便的发送指令,并将运行结果以图形方式显示得给用户。通过使用抽象窗口工具包(AWT)来创建图形用户界面(GUI)。AWT包中提供了3大类:容器类(Container ),UI组件类(UI Component ),帮助类(LayoutManager、 Graphics、Color等)。