任何一个能帮助我清除的matlab代码的错误吗

1视图(30天)
% %开始CarRecogintion.m
(文件名、路径名)= uigetfile (*。avi,选择交通视频文件);
trafficObj = VideoReader([文件名路径名' \ ']);
打= 40;% thershold帧之间的差异
bg =阅读(trafficObj, 1);%读第一帧
bg_bw = rgb2gray (bg);%背景转换成灰度% - - - - - - - - - - - - - - - - - - - - - - - -设置帧尺寸变量- - - - - - - - - - - - - - - - - - - - - - - -
fr_size =大小(bg);%得到第一帧的大小,大小1 x2
宽度= fr_size (2);% x
身高= fr_size (1);y %
fg = 0(高度、宽度);%与车辆的图像
% %创建视频流
帧速率= (trafficObj,帧速率);
nframes =得到(trafficObj NumberOfFrames);
taggedCars = 0([大小(bg, 1)大小(bg, 2) 3 71],类(bg));%与标记输出视频的汽车
taggedCars (::: 1) = bg;
% %定义计算汽车线
xy = defineLine (rgb2gray (bg));
CRegionXSt = min (xy (:, 2));
CRegionXEn = max (xy (:, 2));
CRegionYSt = min (xy (: 1));
cRegionSize = max (xy (: 1)) - min (xy (: 1));
countCars = 0;
plotThres = 40; %的differrence当前和前一帧
sumCr1 = 0; %像素的和用户定义的区域
RC_Val = true;
关闭所有;图(2)
% % - - - - - - - - - - - - - - - - - - - - - - - -过程框架- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
流(1,解析框架……”);
因为我= 2:nframes
fr =阅读(trafficObj,我);%我阅读框架
taggedCars (::,:, i) = fr;
fr_bw = rgb2gray (fr);%将帧转换为灰度
fr_diff = abs(双(fr_bw) -双(bg_bw));
prev = (-12 - -12);%保持去年发现的位置计算的车
j = 1:宽度
k = 1:高度
如果((fr_diff (k, j) >打))
成品(k, j) = fr_bw (k, j);
如果或(abs(上一页(1)- j) > plotThres, abs(上一页(2)- k) > plotThres)
%画出红色rectungle汽车
如果(和(k-2 > 0 k + 2 0 j + 2 100))
countCars = countCars + 1;
RC_Val = false;
结束
结束
结束
结束
结束
如果(RC_Val = = false)
如果(abs (sumCr1 - sumCr2) = = 0)
RC_Val = true;
结束
结束
bg_bw = fr_bw;
次要情节(3,1,1),imshow (fr)
标题([“画面”num2str(我)))
次要情节(3、1、2),imshow (fr_bw)
次要情节(3、1,3),imshow (uint8 (fg))
流(2' \ \ b \ b \ b % 3.0 f % c '(双(我)/双(nframes)) * 100,“%”);
结束
% %阴谋计算汽车
流(2“\ nPlotting…”);
aviobj = VideoWriter (用户“C: \ \克里斯\ Dropbox \ \ csd \教训cs474 \ \项目提交\ out4.avi”);
aviobj。帧速率=帧速率;
打开(aviobj);
f = 1: nframes
我= CRegionXSt: CRegionXEn
j = CRegionYSt: CRegionYSt + cRegionSize
taggedCars (:,:: f) = plotColor (taggedCars (:,:: f), j,我,200,150,125);
结束
结束
writeVideo (aviobj taggedCars (::,:, f));
流(2' \ \ b \ b \ b % 3.0 f % c '(双(f) /双(nframes)) * 100,“%”);
结束
关闭(aviobj);
implay (taggedCars,帧速率)
流(2,' \ ncar通过:% s \ n”, num2str (countCars));
% %结束
函数[出]= plotColor (ArrayFrame、行坳,v1、v2、v3)
% plotColor情节在RGB颜色RGB框架
ArrayFrame(行,坳,1)= v1;
ArrayFrame(行,坳,2)= v2;
ArrayFrame(行,坳,3)= v3;
= ArrayFrame;
结束
这是我们的功能。(它必须是主脚本存储在同一个文件夹或把路径matlab脚本的路径)。
我们有我们的主要脚本叫做CarRecogintion。m和一个函数,称为plotColor.m。(记住,文件名必须与函数名相同)。
函数[出]= plotColor (ArrayFrame、行坳,v1、v2、v3)
% plotColor情节在RGB颜色RGB框架
ArrayFrame(行,坳,1)= v1;
ArrayFrame(行,坳,2)= v2;
ArrayFrame(行,坳,3)= v3;
= ArrayFrame;
结束

答案(1)

奥斯曼哈利法
奥斯曼哈利法 2021年4月11日
你需要正确的如下:
= = = = = = = = = = = =
% % - - - - - - - - - - - - - - - - - - - - - - - -过程框架- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
流(1,解析框架……”);
因为我= 2:nframes
fr =阅读(trafficObj,我);%我阅读框架
taggedCars (::,:, i) = fr;
fr_bw = rgb2gray (fr);%将帧转换为灰度
fr_diff = abs(双(fr_bw) -双(bg_bw));
prev = (-12 - -12);%保持去年发现的位置计算的车
j = 1:宽度
k = 1:高度
如果((fr_diff (k, j) >打))
成品(k, j) = fr_bw (k, j);
如果或(abs(上一页(1)- j) > plotThres, abs(上一页(2)- k) > plotThres)
%画出红色rectungle汽车
如果(和(k-2 > 0 k + 2 > 0 j + 2 > 100))
countCars = countCars + 1;
RC_Val = false;
结束
结束
结束
结束
结束
如果(RC_Val = = false)
如果(abs (sumCr1 - sumCr2) = = 0)
RC_Val = true;
结束
结束
bg_bw = fr_bw;
次要情节(3,1,1),imshow (fr)
标题([‘画面’num2str (i)))
次要情节(3、1、2),imshow (fr_bw)
次要情节(3、1,3),imshow (uint8 (fg))
流(2,' \ b \ b \ b \ b % 3.0 f % c’,(双(我)/双(nframes)) * 100, ' % ');
结束

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的