欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【计算机视觉】【车辆识别】--Matlab实现

发布时间:2025/3/17 编程问答 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【计算机视觉】【车辆识别】--Matlab实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

希望利用计算机自动计算出停车场车辆数目:

这里由于没有参考背景图,只有这一张,所以我采用的是对图像二值化,腐蚀膨胀,并且对白车、棕车、黑车各有一个阈值,之后计算图像域数量,则分别可以得到白车、黑车、棕车的数量,加在一起则是总数量,这里得到的结果是11.5辆。

clc; clear all I=imread('D:/作业1.png'); G=rgb2gray(I); % G=histeq(G); H=imhist(G); % bar(H); [a,b]=size(G); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提取白车 G=G-100; for i=1:1:afor j=1:1:bif G(i,j)>=25G2(i,j)=1;elseG2(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:afor j=1:1:bif G(i,j)<=150G1(i,j)=1;elseG1(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:afor j=1:1:bif G(i,j)<=100&&G(i,j)>=70G1(i,j)=1;elseG1(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) subplot 222 % X1=double(G)-XX*255; % imshow(X1/255)imshow(XX) subplot 223 imshow(XX1) % X2=double(G)-XX1*255; % imshow(X2/255) % imshow(XX1) subplot 224 % X3=double(G)-XX2*255; % imshow(X3/255)imshow(XX2) sum=white+black+brown

11.5

总结

以上是生活随笔为你收集整理的【计算机视觉】【车辆识别】--Matlab实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。