資源簡介
車輛檢測基礎-紅色車輛檢測
運動目標檢測、顏色提取、框選運動目標
https://blog.csdn.net/zxm_jimin/article/details/87940410

代碼片段和文件信息
%fileName=‘D:\workspace\Matlab?workspace\數字圖像處理\char2\char2_test\jmucorridor.avi‘;
fileName=‘D:\workspace\Matlab?workspace\數字圖像處理\char2\char2_test\Sample4.mp4‘;
obj=VideoReader(fileName);
numframes=obj.NumberOfframes;
f=read(obj300);
a=0.01;
for?i=10:300
???frame=read(obji);
???b=frame;
???b=(1-a)*b+a*f;
????o=frame-f;
????ogray=f-b;
%?????
%?????????
????%%
img?=?ogray;??
%?get?binary?image??
gray_img?=?rgb2gray(img);??
T?=?graythresh(gray_img);??
bw_img?=?im2bw(gray_img?T);??
bw_img=medfilt2(bw_img[99]);??
%?find?the?largest?connected?region??
img_reg?=?regionprops(bw_img??‘area‘?‘boundingbox‘);??
areas?=?[img_reg.Area];??
rects?=?cat(1??img_reg.BoundingBox);??
%?show?all?the?largest?connected?region??
figure(1)??
imshow(frame);
for?i?=?1:size(rects?1)??
????if(?rects(i3)>20||rects(i4)>20)
????rectangle(‘position‘?rects(i?:)?‘EdgeColor‘?‘r‘);??
????end
end??
%%
%?g=o;
%?dd1=(g(::1)<=255&g(::1)>=240&g(::2)<=230&g(::2)>=205&g(::3)<=45&g(::3)>=30);
%?%由RGB顏色范圍摳圖?結果為邏輯矩陣(只包含0與1)
%?[mn]=size(dd1);
%?z=zeros(mn);
%?image(cat(3dd1zz))
%%
?x=imread(‘2.jpg‘);%讀取彩圖
[mnd]=size(x);
y=uint8(x);%轉為uint8數據類型,計算圖像像素
level=0;%設置閾值
%提取紅分量,不滿足閾值的變為白色
for?i=1:m
????for?j=1:n
????????if((x(ij1)-x(ij2)>level)&&(x(ij1)-x(ij3)>level))
????????????y(ij1)=x(ij1);
????????????y(ij2)=x(ij2);
????????????y(ij3)=x(ij3);
????????else
????????????b(ij1)=255;
????????????y(ij2)=255;
????????????y(ij3)=255;
????????end
????end
end
%?subplot(222);imshow(y);title(‘提取紅分量后‘);%顯示提取紅分量后的圖
sum1=sum(sum(y(::1)));
%%
x1=o;
[mnd]=size(x1);
y1=uint8(x1);%轉為uint8數據類型,計算圖像像素
%?imshow(y1);
level=0;%設置閾值
%?figure(5);
%?subplot(221);imshow(x1);title(‘原圖‘);%顯示原圖
%提取紅分量,不滿足閾值的變為白色
for?i=1:m
????for?j=1:n
????????if((x1(ij1)-x1(ij2)>level)&&(x1(ij1)-x1(ij3)>level))
????????????y1(ij1)=x1(ij1);
????????????y1(ij2)=x1(ij2);
????????????y1(ij3)=x1(ij3);
????????else?b(ij1)=255;
????????????y1(ij2)=255;
????????????y1(ij3)=255;
????????end
????end
end
%subplot(222);imshow(y1);title(‘提取紅分量后‘);%顯示提取紅分量后的圖
sum11=sum(sum(y1(::1)));
flag=0;
if(sum11>0.5*sum1)
????flag=1;
end
figure(3);
if(flag==1)
????imshow(o);
????for?i?=?1:size(rects?1)??
????if(?rects(i3)>30||rects(i4)>30)
????rectangle(‘position‘?rects(i?:)?‘EdgeColor‘?‘r‘);??
????end
end??
end
end
subplot(221)imshow(f);
subplot(222)imshow(b);
subplot(223)imshow(o);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-11?14:47??紅色車輛檢測\
?????文件?????1599382??2019-01-11?14:04??紅色車輛檢測\111.zip
?????文件????????3747??2019-01-11?13:41??紅色車輛檢測\2.jpg
?????文件?????1608919??2019-01-09?22:46??紅色車輛檢測\Sample4.mp4
?????文件????????2677??2019-01-11?14:03??紅色車輛檢測\sy1_1.m
- 上一篇:protel99se元件庫大全
- 下一篇:zemax變焦鏡頭設計
評論
共有 條評論