最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【車輛計(jì)數(shù)】基于光流法實(shí)現(xiàn)車輛檢測計(jì)數(shù)matlab 源碼

2021-08-25 00:01 作者:Matlab工程師  | 我要投稿

?一、簡介

基于matlab行駛車輛檢測計(jì)數(shù):讀入待處理視頻,用于色彩空間轉(zhuǎn)換、檢測出包含汽車運(yùn)動(dòng)的圖像塊、用高斯混合模型檢測背景、對檢測出的運(yùn)動(dòng)車輛進(jìn)行框畫、標(biāo)注檢測到車輛的個(gè)數(shù)用于顯示結(jié)果。
1 案例背景

在這里插入圖片描述


2 理論基礎(chǔ)
2.1 光流法檢測運(yùn)動(dòng)原理

在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


2.2 光流法的主要方法

在這里插入圖片描述


在這里插入圖片描述

二、源代碼

clear;close all; SE = strel('rectangle',[10 10]); %注意:結(jié)構(gòu)元素必須具有適當(dāng)?shù)拇笮?BW1=imread('test5.jpg'); subplot(221);imshow(BW1);title('原圖'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%添加 GRAY=rgb2gray(BW1); %灰度圖像1 h=fspecial('average',9); GRAY=uint8(round(filter2(h,GRAY))); %進(jìn)行均值濾波 subplot(222);imshow(GRAY);title('均值濾波'); GRAY = imcrop(GRAY,[10 20 542 355]); ? %裁剪 GRAY=double(GRAY); %轉(zhuǎn)換為double類型 [Gx,Gy]=gradient(GRAY); % 計(jì)算梯度 G=sqrt(Gx.*Gx+Gy.*Gy); % 水平垂直差分 J=GRAY; K=find(G<2); %指定灰度級 J(K)=0; subplot(223);imshow(J);title('銳化'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BW2=imdilate(J,SE);%膨脹 BW3 = imfill(BW2,'holes'); %填充 BW4=imerode(BW3,SE);%腐蝕 I=im2bw(BW4); subplot(224);imshow(I);title('目標(biāo)塊'); %====形態(tài)特征值計(jì)算===% A=bwarea(I); % 計(jì)算目標(biāo)的面積 I1=edge(I,'canny',0.7); [L, num]=bwlabel(I1,8);%存放提取的目標(biāo)矩陣和數(shù)目 STATS = regionprops(L,'BoundingBox'); % 存放經(jīng)過篩選以后得到的所有矩形塊 ? n = 1; wh=zeros(1,num); for i=1:num ? ?box = STATS(i).BoundingBox; ?%圖像的長寬 ? ?x = box(1); ? ?%矩形坐標(biāo)x ? ? ?y = box(2); ? ?%矩形坐標(biāo)y ? ? ?w = box(3); ? ?%矩形寬度w ? ? ?h = box(4); ? ?%矩形高度h ? ?wh(1,i)=w*h; ? ?ux = ceil(x); ?%取整 ? ?uy = ceil(y); ? ? ?if ux > 1 ? ? ? ? ? ux = ux - 1; ? ? ? end ? ? ? if uy > 1 ? ? ? ? ? ? ? end ? ? ? %result(n,:) = [ux uy w h]; ? ? ? ? R=zeros(h,w); ? ? ? ? G=zeros(h,w); ? ? ? ? B=zeros(h,w); ? ? ? ?for j=1:w ? ? ? ? ? ?for ii=1:h ? ? ? ? ? ? ? ?R(ii,j)=BW1(ii+uy-1,j+ux-1,1); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?B(ii,j)=BW1(ii+uy-1,j+ux-1,3); ? ? ? ? ? ?end ? ? ? ?end ? ? ? % r(1,n)=mean(mean(R)) ? ? ? % g(1,n)=mean(mean(G)) ? ? ? % b(1,n)=mean(mean(B)) ? ? ? % n = n+1; ? ? ? ? ? ? ?if(r(1,i)>130&&g(1,i)<130&&b(1,i)<130) ? ? ? ? ? ?disp('檢測出車輛是紅色') ? ? ? ?elseif(r(1,i)<130&&g(1,i)>130&&b(1,i)<130) ? ? ? ? ? ?disp('檢測出車輛是綠色') ? ? ? ?elseif(r(1,i)<130&&g(1,i)<130&&b(1,i)>130) ? ? ? ? ? ?disp('檢測出車輛是藍(lán)色') ? ? ? ?elseif(r(1,i)<80&&g(1,i)<80&&b(1,i)<80) ? ? ? ? ? ?disp('檢測出車輛是黑色') ? ? ? ?elseif(r(1,i)>170&&g(1,i)>170&&b(1,i)>170) ? ? ? ? ? ?disp('檢測出車輛是白色') ? ? ? ?else ? ? ? ? ? ?disp('檢測出車輛是其他色') ? ? ? ?end end % 創(chuàng)建系統(tǒng)對象,用于顯示結(jié)果 sz = get(0,'ScreenSize'); pos = [20 sz(4)-300 200 200]; hVideoOrig = vision.VideoPlayer('Name', 'Original', 'Position', pos); pos(1) = pos(1)+220; ?%在右側(cè)建立下一個(gè)視窗 hVideoFg = vision.VideoPlayer('Name', 'Foreground', 'Position', pos); pos(1) = pos(1)+220; hVideoRes = vision.VideoPlayer('Name', 'Results', 'Position', pos); line_row = 23; % 定義感興趣區(qū)域(ROI) % 以下的程序段為對輸入的視頻圖像進(jìn)行處理 while ~isDone(hvfr) ? ?image = step(hvfr); ? ? ?% 讀入視頻的每一幀 ? ?y = step(hcsc, image); ? ?% 將彩色圖像轉(zhuǎn)換成灰度圖像 % 采用自動(dòng)白平衡算法去除灰度突變 ? ?y = y-mean(y(:)); ? ?fg_image = step(hfdet, y); % 檢驗(yàn)背景 ? ?% 采用數(shù)學(xué)形態(tài)學(xué),在前景圖像中檢測變化的聯(lián)通圖像塊區(qū)域的面積 ? ?[area, bbox] = step(hblob, fg_image); ? ?image_out = image; end

三、運(yùn)行結(jié)果

在這里插入圖片描述


在這里插入圖片描述


【車輛計(jì)數(shù)】基于光流法實(shí)現(xiàn)車輛檢測計(jì)數(shù)matlab 源碼的評論 (共 條)

分享到微博請遵守國家法律
大同市| 长汀县| 理塘县| 涡阳县| 阳谷县| 浦县| 永修县| 开封县| 安徽省| 漳浦县| 绥芬河市| 奈曼旗| 康乐县| 丽江市| 赤壁市| 建德市| 辉南县| 天津市| 应城市| 盖州市| 松潘县| 岱山县| 武山县| 内黄县| 藁城市| 惠州市| 交城县| 平南县| 乌拉特中旗| 囊谦县| 郯城县| 富平县| 莲花县| 个旧市| 泗阳县| 蒙山县| 衡东县| 普兰县| 瑞安市| 西林县| 张掖市|