基于BP神经网络的车牌识别系统(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

      在交通管理中,车牌识别起着重要的作用。车牌识别是一个复杂的过程,主要涉及到车牌的检测和车牌字符的识别。在一些文献中,利用灰度直方图和模板匹配来进行车牌的定位和识别[1.2↓这些方法虽然对车牌识别取得了一些成果,但也有局限性,没有充分利用车牌固有的特征,没有考虑到分割符对字符分割的影响,对于污损的车牌和不同型号的车牌识别效果并不理想等。本文利用车牌的先验知识进行定位引进双阈值进行字符分割,利用13段特征提取法提取特征向量作为神经网络的输入向量[3]对上述问题提出了新的解决方法。

📚2 运行结果

部分代码:

function [sbw,angle]=rotateimg(sbw1)
%%
%Step6 计算车牌水平投影,并对水平投影进行峰谷分析
histcol1=sum(sbw1);      %计算垂直投影
histrow=sum(sbw1');      %计算水平投影
% figure,subplot(2,1,1),bar(histcol1);title('垂直投影(含边框)');%输出垂直投影
% subplot(2,1,2),bar(histrow);     title('水平投影(含边框)');%输出水平投影
% figure,subplot(2,1,1),bar(histrow);     title('水平投影(含边框)');%输出水平投影
% subplot(2,1,2),imshow(sbw1);title('车牌二值子图');%输出二值图
%对水平投影进行峰谷分析
meanrow=mean(histrow);%求水平投影的平均值
minrow=min(histrow);%求水平投影的最小值
levelrow=(meanrow+minrow)/2;%求水平投影的平均值
count1=0;
l=1;
hight=size(sbw1,1);
for k=1:hight
    if histrow(k)<=levelrow                             
        count1=count1+1;                                
    else 
        if count1>=1
            markrow(l)=k;%上升点
            markrow1(l)=count1;%谷宽度(下降点至下一个上升点)
            l=l+1;
        end
        count1=0;
    end
end
markrow2=diff(markrow);%峰距离(上升点至下一个上升点)
[~,n1]=size(markrow2);
n1=n1+1;
markrow(l)=hight;
markrow1(l)=count1;
markrow2(n1)=markrow(l)-markrow(l-1);
% l=0;
for k=1:n1
    markrow3(k)=markrow(k+1)-markrow1(k+1);%下降点
    markrow4(k)=markrow3(k)-markrow(k);%峰宽度(上升点至下降点)
    markrow5(k)=markrow3(k)-double(uint16(markrow4(k)/2));%峰中心位置
end 
%%
%Step7 计算车牌旋转角度
%(1)在上升点至下降点找第一个为1的点
[m2,n2]=size(sbw1);%sbw1的图像大小
[m1,n1]=size(markrow4);%markrow4的大小
maxw=max(markrow4);%最大宽度为字符
if markrow4(1) ~= maxw%检测上边
    ysite=1;
    k1=1;
    for l=1:n2
    for k=1:markrow3(ysite)%从顶边至第一个峰下降点扫描
        if sbw1(k,l)==1
            xdata(k1)=l;
            ydata(k1)=k;
            k1=k1+1;
            break;
        end
    end
    end
else  %检测下边
    ysite=n1;
    if markrow4(n1) ==0
        if markrow4(n1-1) ==maxw
           ysite= 0; %无下边
       else
           ysite= n1-1;
       end
    end
    if ysite ~=0
        k1=1;
        for l=1:n2
            k=m2;
            while k>=markrow(ysite) %从底边至最后一个峰的上升点扫描
                if sbw1(k,l)==1
                    xdata(k1)=l;
                    ydata(k1)=k;
                    k1=k1+1;
                    break;
                end
                k=k-1;
            end
        end
    end
end       
%(2)线性拟合,计算与x夹角
fresult = fit(xdata',ydata','poly1');   %poly1    Y = p1*x+p2
p1=fresult.p1;
angle=atan(fresult.p1)*180/pi; %弧度换为度,360/2pi,  pi=3.14
%(3)旋转车牌图象
subcol = imrotate(sbw1,angle,'bilinear','crop'); %旋转车牌图象
sbw = imrotate(sbw1,angle,'bilinear','crop');%旋转图像
% figure,subplot(2,1,1),imshow(subcol);title('车牌灰度子图');%输出车牌旋转后的灰度图像标题显示车牌灰度子图
% subplot(2,1,2),imshow(sbw);title('');%输出车牌旋转后的灰度图像
% title(['车牌旋转角: ',num2str(angle),'度'] ,'Color','r');%显示车牌的旋转角度 

【回复关键字:完整代码】

🎉3 参考文献

[1]苏科,陈志彬.基于BP神经网络的车牌识别系统[J].辽宁科技大学学报,2010,33(05):509-512.

[2]苏康友.基于BP神经网络车牌识别系统的研究[J].物联网技术,2021,11(11):22-23+28.DOI:10.16667/j.issn.2095-1302.2021.11.006.

[3]郑文光,王静波,高爽,翟葆朔.基于BP神经网络的车牌识别系统的设计[J].河北联合大学学报(自然科学版),2016,38(02):81-86.

🌈4 Matlab代码实现

The MathWorks, Inc. Software License Agreement IMPORTANT NOTICE READ THE TERMS AND CONDITIONS OF YOUR LICENSE AGREEMENT CAREFULLY BEFORE COPYING, INSTALLING, OR USING THE PROGRAMS OR DOCUMENTATION. THE LICENSE AGREEMENT TOGETHER WITH ANY APPLICABLE ADDENDUM REPRESENTS THE ENTIRE AGREEMENT BETWEEN YOU (THE "LICENSEE") AND THE MATHWORKS, INC. ("MATHWORKS") CONCERNING THE PROGRAM(S) AND DOCUMENTATION. BY COPYING, INSTALLING, OR USING THE PROGRAMS AND DOCUMENTATION, YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU ARE NOT WILLING TO DO SO, DO NOT COPY, INSTALL, OR USE THE PROGRAMS AND DOCUMENTATION. _________________________________________________________________ The MathWorks, Inc. Software License Agreement Installation and Use Addendum (if applicable) Academic Installation and Use Addendum (if applicable) Student License and Home License Installation and Use Addendum (if applicable) Deployment Addendum The MathWorks, Inc. Software License Agreement 1. DEFINITIONS. 1.1. "Licensee" means you, whether an individual or an entity, to whom MathWorks grants the License, and who is responsible for complying with the contractual obligations of the License, and ensuring that anyone permitted access to the Programs also complies with such obligations. 1.2. "Affiliate" means a legal entity which is controlled by, or controls, or is under common control with Licensee. Control means (i) beneficial ownership of at least fifty percent (50%) of the voting securities of a corporation or other business organization with voting securities, or (ii) a fifty percent (50%) or greater interest in the profits and capital of a partnership or other business organization without voting securities, provided that no other individual or entity other than the Licensee also has an equal fifty percent (50%) ownership or interest in the legal entity. Notwithstanding the foregoing, unless MathWorks provides its express wr
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值