基于MATLAB的车牌识别模型。 包括车牌识别系统,完成车牌定位、车牌字符分割和车牌字符识别。 用到灰度化、图像增强、边缘检测、车辆定位、分割车牌、车辆预处理、字符分割最后得到识别结果。 程序已调通,可直接运行。

直接上干货!今天带大家用MATLAB手搓一个车牌识别系统,全程不用深度学习,纯数字图像处理技术实现。别看是传统方法,实测停车场抓拍场景下效果够用,关键代码都带着注释,建议边看边敲。

灰度化与图像增强

车牌识别第一步得把彩色图转灰度,毕竟颜色信息对字符识别没啥卵用。MATLAB自带rgb2gray函数省事得很:

img = imread('car_plate.jpg');
gray_img = rgb2gray(img);

但实际场景光照可能坑爹,这时候直方图均衡化必须安排:

enhanced_img = histeq(gray_img);  % 增强对比度
imshowpair(gray_img, enhanced_img, 'montage');  % 对比原图和处理后

边缘检测与车牌定位

基于MATLAB的车牌识别模型。 包括车牌识别系统,完成车牌定位、车牌字符分割和车牌字符识别。 用到灰度化、图像增强、边缘检测、车辆定位、分割车牌、车辆预处理、字符分割最后得到识别结果。 程序已调通,可直接运行。

这里用Sobel算子找边缘,比Canny更适合车牌这种规整形状:

edge_img = edge(enhanced_img, 'sobel', 0.15);  % 阈值自己多调几次

车牌定位是重头戏!咱们采用颜色特征+形态学双重验证。先找蓝色区域(国内车牌底色),注意HSV颜色空间更靠谱:

hsv_img = rgb2hsv(img);
blue_mask = hsv_img(:,:,1)>0.55 & hsv_img(:,:,1)<0.65;  % 色调范围
blue_mask = imclose(blue_mask, strel('rectangle',[15,15]));  % 闭运算填洞

找到候选区域后,用长宽比过滤(车牌比例通常在4:1左右):

region_stats = regionprops(blue_mask, 'BoundingBox','Area');
valid_regions = [];
for k = 1:length(region_stats)
    ratio = region_stats(k).BoundingBox(4)/region_stats(k).BoundingBox(3);
    if ratio > 0.2 && ratio < 0.6  % 过滤非车牌区域
        valid_regions = [valid_regions; region_stats(k).BoundingBox];
    end
end

字符分割要命环节

定位到车牌后,先做二值化+去噪:

plate_region = imcrop(enhanced_img, valid_regions(1,:));  % 取第一个候选区域
plate_bw = imbinarize(plate_region);  
plate_bw = bwareaopen(plate_bw, 50);  % 去除面积小于50的噪点

垂直投影法切割字符,注意处理粘连字符:

vertical_proj = sum(plate_bw, 1);  % 列方向像素求和
split_pos = find(diff(vertical_proj > mean(vertical_proj)/2) ~= 0);  % 找突变点

这里有个坑——汉字可能有左右结构(比如"川"),需要设置最小字符宽度阈值防止误切。

字符识别简单粗暴版

传统方法用模板匹配够用,先准备好字符库:

template = cell(1,34);
for i=1:34
    template{i} = imread(['templates/',num2str(i),'.jpg']); 
end

匹配时注意归一化尺寸,计算相似度可以用相关系数:

char_img = imresize(segmented_char,[40,20]);  % 统一缩放到模板尺寸
scores = zeros(1,34);
for k=1:34
    scores(k) = corr2(char_img, template{k});
end
[~,idx] = max(scores);
result_char = template_chars{idx};  % 输出识别结果

整套流程跑下来,实测白天场景准确率能到85%以上。想要提升效果可以在字符识别环节换成SVM分类器,或者加个车牌颜色识别模块区分新能源车牌。完整代码扔在GitHub了(评论区自取),遇到坑的欢迎来唠!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐