21夜间车牌识别(matlab程序)

1.简述

      

简单说一下实现思路:

读取图片,转灰度,计算灰度直方图,估算阈值(这里的阈值计算很重要,经过阈值算法,选取一个最恰当的阈值),之后二值化。显示图像即可。

  1. 实现目标

输入一张车牌图片,实现车牌定位,字符切割和字符识别三步骤。同时可以根据需要,做成库外识别,语音播报,出入库等功能。

  1. 设计步骤:

所设计的车牌识别的流程包括图像预处理,车牌分割,字符分割,及字符识别。详见matalb程序。

  1. 程序讲解

1)第一部分为图像的预处理。

此部分借鉴了别人的程序,将灰度图像以sobel算子检测边缘;再对边缘图像进行腐蚀,去除掉细的,间断的边缘;对剩下的区域进行闭合以填充图像,此时可以看到车牌区域形成了一个大的连通域;调用bwareaopen函数去掉小的连通域,此时整个二值图像只b剩下了车牌区域为1。如下图所示:

fb7cdc56f13d663cf102ed5e42fbd3ae.png

  1. 第二部分为车牌的提取

此部分的工作为将上一步的白色区域取出,其对应的就是车牌区域。设计思路如下:首先将二值图像f中所有为1的点的坐标放入数组location_of_1中,对这些坐标遍历计算,寻找x坐标与y坐标之和最大的点a与最小的点b,a即为车牌的左上角,b为车牌的右下角。通过这两个坐标将车牌分割出来,并对灰度车牌图像以OTSU算法进行自适应二值化分割。最终效果如下:

80db0d5bbe9d5473929c1bdaf63c2706.png

  1. 第三部分为字符分割

此部分的工作是将车牌里的7个字符分别提取出来。方法如下:对该二值图从左向右像按列z遍历,计算每一列之和,没有白点的列和为0,有白点的列和非零,转换为逻辑1,记录下所有列和在0与1转换的列,即为需要切割的列,共有14列,可切出7个字符。切割出单个字符后,放入char_(i)中,并切割掉每个字符的上下的空白区域,完成精确切割,效果如下:

7c54ff222e9ca98e47ccfc9da0432f6b.png

  1. 第四部分为字符的识别

识别的方法主要有模板匹配字符识别算法,统计特征匹配算法,神经网络字符识别算法和支持向量机模式识别算法。由于分割的字符效果较好,为明显畸变,模k板维数低(32*16),且因为时间关系,这里采用了模板匹配识别算法。该程序把切割出的字符与库里的汉字和字符的模板做减法运算,找到差别点最少的模板为对应模板,输出该模板对应的字符,最后识别出其为“京JX9168”。如下:

5c7c8cb3f8a852e3dd666e00b7b9bf40.png

2.代码

 

clear all
clc
PS=imread('1.jpg'); 
subplot(1,2,1);
imshow(PS)                                             
title('原图')
p=rgb2gray(PS);
subplot(1,2,2)
imshow(p)
title('原灰度图')

[m,n]=size(p);  
GP=zeros(1,256);       
for k=0:255
GP(k+1)=length(find(p==k))/(m*n);  
end
figure
subplot(1,2,1);
bar(0:255,GP,'g')                          
title('原灰度直方图')

max_index=[];
for i=3:length(GP)-2
if((GP(i)>=GP(i+1))&(GP(i)>=GP(i-1)))&((GP(i+1)>=GP(i+2))&(GP(i-1)>=GP(i-2)))
max_index(end+1)=i-1;
end
end
possible=GP(max_index);
[max_value,index]=max(possible);
TT=max_index(index)-2;

[m,n]=size(p);
R=zeros(m,n);
for i=1:m
    for j=1:n
        if p(i,j)<TT
           R(i,j)=0;
        else R(i,j)=256;
        end
    end
end
subplot(1,2,2);
imshow(R);
title('二值图');

 

3.运行结果

01aca1ae40c3414991dc3990ffff8a28.png

 159321c969514251b6839c59005b8fe5.png

猜你喜欢

转载自blog.csdn.net/m0_57943157/article/details/131604539