您现在的位置:首页 >> 机器学习 >> 内容

m基于MSER最大稳定极值区域和SVM的交通标志检测识别算法的matlab仿真

时间:2023/3/6 22:52:40 点击:

  核心提示:10_043_m,包括程序操作录像+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJaUl5xp

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

         在计算机视觉领域,最大稳定极值区域 (MSER)(Maximally Stable Extremal Regions)是一种用于在图像中进行斑点检测的方法。这个方法由Matas等人提出,用于在两个不同视角的图片中寻找对应关系(correspondence problem)。这种方法从图像中提取全面的元素对应关系,有助于宽基线匹配(wide-baseline matching),以及更好的立体匹配和物体识别算法。特征检测是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征检测的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。

4.部分源码

.......................................................................

ind= 0;

for i = 1:length(XY)

    Xmin = min(XY{i}(:,1));

    Xmax = max(XY{i}(:,1));

    Ymin = min(XY{i}(:,2));

    Ymax = max(XY{i}(:,2));    

    W1(i)= Ymax - Ymin;

    L1(i)= Xmax - Xmin;

    if abs(L1(i) - W1(i)) <= 5

       ind      = ind+1; 

       XY2{ind} = XY{i}; 

    end

end

figure; 

imshow(I1); 

hold on;

for i = 1:length(XY2)

    plot(XY2{i}(:,1),XY2{i}(:,2),'g.');

    hold on

end

 

%提取交通标志的中心点,判断是否为同一个标志

for i = 1:length(XY2)

    Xmin(i)= min(XY2{i}(:,1));

    Xmax(i)= max(XY2{i}(:,1));

    Ymin(i)= min(XY2{i}(:,2));

    Ymax(i)= max(XY2{i}(:,2));

    Xc(i)  = (Xmin(i)+Xmax(i))/2;

    Yc(i)  = (Ymin(i)+Ymax(i))/2;

%     plot(Xc(i),Yc(i),'r*');hold on

end

 

%重合点合并

Xmin2=[];

Xmax2=[];

Ymin2=[];

Ymax2=[];

 

if length(Xc)>1

    indx = 0;

    for i = 1:length(Xc)

        tmps=[];

        for j = 1:length(Xc)

            if sqrt(double((Xc(i) - Xc(j))^2 + (Yc(i) - Yc(j))^2))<=20

               tmps=[tmps,j];

            end

        end

        tmps

        Xmin2(i) = mean(Xmin(tmps));

        Xmax2(i) = mean(Xmax(tmps));

        Ymin2(i) = mean(Ymin(tmps));

        Ymax2(i) = mean(Ymax(tmps)); 

    end

    %根据XYi的相似性进行合并

else

    Xmin2= Xmin;

    Xmax2= Xmax;

    Ymin2= Ymin;

    Ymax2= Ymax; 

end

 

 

Smj

%%

index = 0;

for i = 1:length(Xmin2)

    SS    = abs(Ymin2(i)-Ymax2(i))*abs(Xmin2(i)-Xmax2(i))

    if SS>Smj

       index = index + 1; 

       Ic{index} = I(Ymin2(i)-SCALE:Ymax2(i)+SCALE,Xmin2(i)-SCALE:Xmax2(i)+SCALE,:);

        Xmin3(index) = (Xmin(i));

        Xmax3(index) = (Xmax(i));

        Ymin3(index) = (Ymin(i));

        Ymax3(index) = (Ymax(i)); 

    end

end

 

figure;

 

 

%HOG特征提取

 

F1=[];

for i = 1:length(Ic)

    I1      = imresize(Ic{i},[96,96]);

    F1      = [F1;func_feature1(I1)];

end

 

 

%SVM测试

load svm_trains.mat

 

 

for i = 1:length(Ic)

    [Predict1,error1] = svmpredict(1,[F1(i,:)],model);

    yout(i)=Predict1;

end

yout(find(yout==0))=[];

........................................................................

title('交通标志提取');

10_043_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168