【图像识别】基于模板匹配算法求解车牌识别问题matlab代码

374 阅读2分钟

1 简介

随着社会的进步,汽车数量日益增加,城市交通状况越来越受到人们的重视,如何进行有效的交通管理成为目前亟待解决的问题.针对此问题,人们相继研制出了各种交通道路监管系统,各种各样的车牌识别系统也应运而生.本文提出的基于MATLAB的车牌识别系统由图像预处理, 车牌定位, 字符分割和字符识别四大步骤组成.图像的预处理阶段采用图像灰度化,图像的增强及图像的边缘检测,还用到了形态学的图像处理方法,如膨胀,腐蚀等.本文最后介绍了利用图像分割方法对车牌的字符信息进行切分以及基于模板匹配法的字符识别方法.

2 部分代码

% clear 
addpath(genpath(pwd)); %添加子文件夹下的所有文件
%%加载图像
start=6212;
% state=num+1;
% start=6540;
state=1;

% for num = state:294
   close all
num = 1 ;   %读取文件夹下的第num张图片 
% 20
% 

   fname=['样本库\IMG_',num2str(start+num),'.jpg'];
  % 有三个车牌文件夹:'PlateImages/%d.jpg' 或者'PlateImages/Image1/%d.jpg' 或'PlateImages/Image2/%d.jpg'
filename = fullfile(pwd, fname);
Img = imread(filename);
%{
figure(5);
subplot(2,2,1);imshow(Img);title('原图');I1=rgb2gray(Img);
subplot(2,2,2);imshow(I1);title('灰度图');
subplot(2,2,3);imhist(I1);title('灰度图直方图');I2=edge(I1,'roberts',0.15,'both');
subplot(2,2,4);imshow(I2);title('roberts算子边缘检测')
se=[1;1;1];
I3=imerode(I2,se);
figure(6);
subplot(2,2,1);imshow(I3);title('腐蚀后图像');se=strel('rectangle',[25,25]);I4=imclose(I3,se);
subplot(2,2,2);imshow(I4);title('平滑图像的轮廓');I5=bwareaopen(I4,2000);
subplot(2,2,3);imshow(I5);title('从对象中移除小对象');
%} 

GetDB;

%% 定位车牌
% 定位车牌:找出车牌在原始图片中的位置
% 输入参数Img: 读取的原始真彩色图像信息
% 输出参数plate:经过定位处理后,从原始真彩色图像(会进行压缩处理)截取到的车牌位置处的真彩色图像信息
plate = Pre_Process(Img);

%% 倾斜校正
% 倾斜校正:对待识别数字的倾斜校正,分别使用Radon变换和仿射函数处理水平倾斜校正和垂直倾斜校正
% 输入参数:plate为定位截取的真彩色车牌图像信息
% 输出参数:
plate = radon_repair(plate);


% end

3 仿真结果

4 参考文献

[1]黄全进, & 王群杰. (2019). 基于matlab的车牌识别系统. 福建质量管理, 000(019), 154-155.

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页