✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
交通标志的检测与识别是智能车无人驾驶的重要组成部分,它也是解决交通安全问题的一种有效方法。在现实中由于分辨率,气象条件,照明强度和运动模糊等干扰,交通标志的图像质量通常很差,很难被检测,所以如何排除以上干扰,提高交通标志的检测和识别准确率是当前这一领域亟待解决的问题。交通标志的检测与识别问题主要包括两个部分:如何在获取的图像中准确找到交通标志,如何对提取的交通标志图片实现准确识别或分类。本文从这两个方向出发,分别对检测和识别方法进行了研究。对于交通标志的检测,本文采取的是基于RGB颜色空间和基于归一化相关系数相结合的交通标志检测方法。
⛄ 部分代码
clc;
clear all;
close all;
restoredefaultpath;
addpath(genpath(pwd));
[File,Path] = uigetfile('*','Select the Image file');
y=imread(strcat(Path,File));
y=imresize(y,[250 300]);
figure,
subplot(241)
imshow(y)
title('Input image')
y1=y;
s1=size(y);
src_img=y;
if(numel(s1) > 2)
y=rgb2gray(y);
end
subplot(242)
imshow(y)
title('Grayscale image')
%% find color MSER
R=double(src_img(:,:,1));
G=double(src_img(:,:,2));
B=double(src_img(:,:,3));
ohmRB=max(R./(R+G+B),B./(R+G+B));
subplot(243)
imshow(uint8(ohmRB),[])
title('Normalized RB')
I = uint8(mat2gray(ohmRB)) ;
%% Connected Component Analysis
f=im2bw(ohmRB);
f=bwareaopen(f,50);
subplot(244)
imshow(f)
title('Morphology Filter')
connComp = bwconncomp(f); % Find connected components
stats = regionprops(connComp,'Area','Eccentricity','Solidity');
disp(stats)
%% High Area Detected
clear s
s=regionprops(f,{'Area';'EquivDiameter';'BoundingBox';'Eccentricity'})
[v ind]=max([s.Area]);
D=s(ind).EquivDiameter;
%
A=pi.*D.^2.0/4.0;
%
Diff=abs(A-s(ind).Area)
zk=imcrop(y1,s(ind).BoundingBox);
subplot(245)
imshow(zk)
s(ind).Eccentricity
zk1=imcrop(f,s(ind).BoundingBox);
yk=imfill((zk1),'holes');
subplot(246),imshow(yk)
title('Filling Holes')
%% Verify Circle
clear s
Ibw1=yk;
s1 = regionprops(Ibw1,'MajorAxisLength','MinorAxisLength','Area','centroid');
ind=find([s1.Area]==max([s1.Area]));
centroids = cat(1, s1.Centroid);
Router=s1.MajorAxisLength./2.0;
Rinner=s1.MinorAxisLength./2.0;
[B,L] = bwboundaries(Ibw1,'noholes');
⛄ 运行结果
⛄ 参考文献
[1]鲁寒凝. 基于HOG特征的交通标志检测与识别算法研究[D]. 长安大学.