matlab的车牌识别——根据easyprr学习记录(一)

来源:互联网 发布:网络外卖订餐系统 编辑:程序博客网 时间:2024/05/01 06:08

开始进行一个easypr的一个学习过程

运用的软件是 vs2017 opencv3.2.0 matlab2014b

我慢慢的将自己的想法给写出来 然后可以给自己的一个记录

我使用的车牌库是easypr中的车牌库


第一部分

有关于车牌中的定位的一个过程

对于车牌的定位的方法  我现在会使用的是 基于灰度图的边缘检测 还有一个基于HSV的颜色定位


(一)、基于灰度图的一个车牌定位

首先对原始图片进行一个高斯变换



获得一个稍微模糊的一个图片


然后既然是对于灰度图 还有边缘检测来进行定位的话自然是需要进行一个灰度化的处理

我这里用的灰度化的公式是

[x,y,z] = size(plate1);
plate2 = zeros(x,y,1);
for i=1:x
    for j=1:y
        plate2(i,j,1)=0.2989.*plate1(i,j,1)+0.5870.*plate1(i,j,2)+0.114.*plate1(i,j,3);       
    end
end

就是0.2989的R加上0.5870的G加上0.114的B然后合成一个灰度图


灰度话以后可以使用matlab自带的各种边缘检测的一个处理

也就是edge函数,具体函数可以使用 help edge可以看具体的边缘检侧的函数

我们这里使用的是sobel算子来进行垂直边缘检测

因为车牌中有很丰富的纹理特征,其中垂直纹理一般较其他区域丰富,所以使用垂直边缘检测


而后就可以使用形态学中的开闭运算就可以清楚的出现出纹理丰富的区域。


然后可以过滤一些小的区域


然后就可以剩下几个区域出来

然后我们可以用最小矩形区域将齐框出来可以进行一个svm训练来确定车牌所在的区域位置