How to when I getdata from Video processing gets increasingly slow in GUI

1 vue (au cours des 30 derniers jours)
Adisorn Phanukthong
Adisorn Phanukthong le 8 Juin 2017
if true
Table = zeros(1,17);
test = readtable ('datatrain.csv');
xdata = test(1:end,[12 13]);
train = table2array(xdata);
group1 = test(1:end,17);
group = table2array(group1);
% svmStruct = svmtrain(train,group,'kernel_function','rbf','ShowPlot',true);
svmStruct = svmtrain(train,group,'ShowPlot',false);
vid = webcam;
% preview(vid);
set(vid,'TriggerRepeat',Inf);
set(vid,'ReturnedColorSpace','grayscale');
vid.FrameGrabInterval = 3;
% Set value of a video source object property.
vid_src = getselectedsource(vid);
set(vid_src,'Tag','motion detection setup');
disp(sprintf(' FRAMING START from VIDEO'));
start(vid);
data2 = getdata(vid,1);
count = 0;
while(vid.FramesAcquired<=300)% Stop after 100 frames
data = getdata(vid,2);
% diff_im = imsubtract(data(:,:,:,1),data(:,:,:,2));
% diff_im = imsubtract(data2,data(:,:,:,1));
diff_im = abs((data2) - (data(:,:,:,1)));
for i=1:720
for j=1:1280
if(diff_im(i,j) <25)
diff_im(i,j)=diff_im(i,j)+0;
else
diff_im(i,j)=diff_im(i,j) + 255;
end
end
end
diff_im = imbinarize(diff_im,0.09);
% if sum(diff_im(:)>0)
diff_open = imfill(diff_im,'holes');
diff_open = bwareaopen(diff_open,25000,8);
diff_open = bwareaopen(diff_open,25000,8);
if sum(diff_open(:)==1)>10000
% imshow(diff_open);
% drawnow ;
[BWAREA,PERI,cen,Dispersion,height,width,aspect,upperRatio,lowerRatio,Ratio,theta] = AREAPICTURE (diff_open) ;
diff_im2 = imsubtract (data2,data(:,:,:,2));
diff_im2 = imbinarize(diff_im2,0.09);
[BWAREA2,PERI2,cen2,Dispersion2,height2,width2,aspect2,upperRatio2,lowerRatio2,Ratio2,theta2] = AREAPICTURE (diff_im2) ;
if (count == 0)
Angle = theta ;
Velocity = 0;
end
if (count == 1) && (theta <=70)
Angle = theta ;
end
Velocity = abs (Angle - theta);
Table(1,1)= BWAREA;
Table(1,2) = PERI;
Table(1,3) = cen(1,1);
Table(1,4) = cen(1,2);
Table(1,5)= Dispersion;
Table(1,6) = height;
Table(1,7) = width;
Table(1,8)= aspect;
Table(1,9) = upperRatio;
Table(1,10) = lowerRatio;
Table(1,11) = Ratio;
Table(1,12)= theta;
Table(1,13)= Velocity;
fid = fopen('datarealtime.csv','wt'); dlmwrite('datarealtime.csv', Table,'delimiter',',','-append'); fclose(fid); normaldata ('datarealtime.csv'); svm ('normaltorealtime.csv',svmStruct);
Angle=theta;
count=count+1;
%
end
% end
end stop(vid); delete(vid); clear vid; end

Réponses (0)

Catégories

En savoir plus sur MATLAB Support Package for IP Cameras dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by