【车牌识别】使用形态学算子进行车牌检测(Matlab实现)

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

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

使用形态学算子进行车牌检测是一种基于数学形态学原理的图像处理方法,用于定位和提取图像中的车牌区域。形态学操作是一种图像处理技术,主要用于分析和处理基于形状和结构的图像特征。常见的形态学操作包括腐蚀、膨胀、开运算、闭运算等。首先对输入图像进行预处理,如灰度化、去噪等操作,以提高后续形态学操作的效果。使用膨胀操作可以增加图像中目标(车牌)的大小和连通性,有助于形成闭合区域。通过适当的形态学操作序列,可以将图像中的车牌区域从背景中分离出来,形成一个或多个连通的目标区域。车牌通常具有特定的形状和尺寸特征,形态学操作可以根据这些特征来定位和提取车牌区域。使用形态学算子进行车牌检测是一种经典而有效的图像处理方法,通过结构化的数学操作来提取和定位图像中的车牌区域,为车牌识别系统的实现提供了重要的技术基础。

📚2 运行结果

主函数部分代码:

%% clear command windows
clc
clear all
close all
%% Read Image
In    = 1;                              % select a number between 1 to 9
Im    = imread(fullfile('.', 'DataBase', strcat(num2str(In), '.jpg'))); % read image
I     = im2double(rgb2gray(Im));        % rgb to gray
% figure();imshow(I)
%% Sobel Masking 
SM    = [-1 0 1;-2 0 2;-1 0 1];         % Sobel Vertical Mask
IS    = imfilter(I,SM,'replicate');     % Filter Image Using Sobel Mask
IS    = IS.^2;                          % Consider Just Value of Edges & Fray Weak Edges
% figure();imshow(IS)
%% Normalization
IS    = (IS-min(IS(:)))/(max(IS(:))-min(IS(:))); % Normalization
% figure();imshow(IS)
%% Threshold (Otsu)
level = graythresh(IS);                 % Threshold Based on Otsu Method
IS    = im2bw(IS,level);
% figure();imshow(IS)
%% Histogram
S     = sum(IS,2);                      % Edge Horizontal Histogram
% figure();plot(1:size(S,1),S)
% view(90,90)
%% Plot
% figure()
% subplot(1,2,1);imshow(IS)
% subplot(1,2,2);plot(1:size(S,1),S)
% axis([1 size(IS,1) 0 max(S)]);view(90,90)
%% Plate Location
T1    = 0.35;                           % Threshold On Edge Histogram
PR    = find(S > (T1*max(S)));          % Candidate Plate Rows
%% Masked Plate
Msk   = zeros(size(I));
Msk(PR,:) = 1;                          % Mask
MB    = Msk.*IS;                        % Candidate Plate (Edge Image)
% figure();imshow(MB)
%% Morphology (Dilation - Vertical)
Dy    = strel('rectangle',[80,4]);      % Vertical Extension
MBy   = imdilate(MB,Dy);                % By Dilation
MBy   = imfill(MBy,'holes');            % Fill Holes
% figure();imshow(MBx)
%% Morphology (Dilation - Horizontal)
Dx    = strel('rectangle',[4,80]);      % Horizontal Extension
MBx   = imdilate(MB,Dx);                % By Dilation
MBx   = imfill(MBx,'holes');            % Fill Holes
% figure();imshow(MBy)

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]谭若琦,董明刚,赵唯肖,等.基于语义对齐和层次优化的非机动车车牌识别定位方法[J/OL].计算机工程:1-13[2024-05-22].https://doi.org/10.19678/j.issn.1000-3428.0068590.

[2]王福建,洪侨波.基于车牌识别数据的出行熵计算与分析[J].综合运输,2024,46(03):114-120.

🌈4 Matlab代码实现

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值