基于模板匹配的车牌识别系统(MATLAB)

作为本部分软件实验的总结,结合图像处理的一些列步骤,最终实现一哥完整的车牌识别系统,这里的车牌识别主要运用了字符匹配的方法,因此我们需要收集一些字符模板,由于资源有限,我仅收集了数字,字母,和部分汉字模板,如图16所示。
基于模板匹配的车牌识别系统(MATLAB)_第1张图片

图16 字符模板
下面给出,整个系统实现的大致流程,如图17所示
基于模板匹配的车牌识别系统(MATLAB)_第2张图片

图17 程序流程图
接下来我们就来看看每一步的实现:
Step1:读取车牌显示,如图18所示。
基于模板匹配的车牌识别系统(MATLAB)_第3张图片

图18 读取车牌
Step2:图像预处理
此步骤中包括图像灰度化,二值化,边缘检测,图像的腐蚀,闭运算等操作等,代码如下所示:
基于模板匹配的车牌识别系统(MATLAB)_第4张图片

看一下运行结果,如图19所示。
基于模板匹配的车牌识别系统(MATLAB)_第5张图片

图19 图像预处理
Step3:车牌定位
这里采用的方法简而言之就是统计蓝色像素值,来确定车牌的大致区域,分别在水平和垂直方向上统计连续像素不为0的像素点个数然后作投影即可,代码实现如下,如图20:
基于模板匹配的车牌识别系统(MATLAB)_第6张图片

图20 车牌定位代码
我们来看一下运行效果,如图21.
在这里插入图片描述

图21 定位车牌
Step4:字符分割
与车牌定位的方法类似,由于字符之间存在间隔,必定会出现0像素值连续的情况,让后进行水平投影,即可确定每一个字符所占据的宽度,进行分割。代码如图22所示。
基于模板匹配的车牌识别系统(MATLAB)_第7张图片

图22 字符切割代码
看一下最终的分割效果如何,如图23所示。
基于模板匹配的车牌识别系统(MATLAB)_第8张图片

图23 字符分割结果
总体效果还行。
Step5:字符识别
字符识别采用的是模板比配的方向,其核心思想就是,将分割出来的字符,与之前收集的字符模板相减(也就是遍历像素值),统计误差最小的即为匹配,可以作为识别结果输出,实现代码如图24所示。
基于模板匹配的车牌识别系统(MATLAB)_第9张图片

图24 字符识别代码
到这里,车牌识别基本结束,识别结果如图25所示。
基于模板匹配的车牌识别系统(MATLAB)_第10张图片

图25 最终识别结果
观察识别结果,正确识别出我们输入的原图像的车牌。
完整代码下载:matlab车牌识别

你可能感兴趣的:(车牌识别,matlab,算法)