一、简介
模型参考这里。
二、源代码
clc; clear all I=imread('C:\Users\lenovo\Desktop\新建文件夹\2.png'); G=rgb2gray(I); % G=histeq(G); H=imhist(G); % bar(H); [a,b]=size(G); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提取白车 G=G-100; for i=1:1:a for j=1:1:b if G(i,j)>=25 G2(i,j)=1; else G2(i,j)=0; end end end se1=strel('square',10); G4=imdilate(G2,se1); se1=strel('square',15); G4=imerode(G4,se1); XX=bwlabel(G4,8); white=max(max(XX))/2%%%%%%%%%%%%%两个点为1个白车 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提取黑车 G=rgb2gray(I); G=G+100; [a,b]=size(G); for i=1:1:a for j=1:1:b if G(i,j)<=150 G1(i,j)=1; else G1(i,j)=0; end end end se1=strel('square',20);%20 G4=imerode(G1,se1); se1=strel('square',35); %35 G5=imdilate(G4,se1); XX1=bwlabel(G5,8); black=max(max(XX1))-2%%%%%%%%%%%%%%减去两个背景 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提取棕车 G=rgb2gray(I); [a,b]=size(G); for i=1:1:a for j=1:1:b if G(i,j)<=100&&G(i,j)>=70 G1(i,j)=1; else G1(i,j)=0; end end end se1=strel('square',30); G4=imerode(G1,se1); se1=strel('square',30); G5=imdilate(G4,se1); XX2=bwlabel(G5,8); brown=max(max(XX2))-1%%%%%%%%%%%%减去中间背景点 XX3=XX1+XX2+XX; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%出图 subplot 221 imshow(I)
三、运行结果
四、参考文献
[1]吴凌霄, 林晨, 许福海,等. 基于背景差分的车辆计数方法的研究[J]. 自动化技术与应用, 2011, 30(010):72-75.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。