該代碼通過Matlab中的網絡攝像頭實時處理視頻。對於每一幀,我執行一些操作,最終結果是'度'。在實時視頻採集中存儲最後幀的信息MATLAB
我需要存儲度數的結果,比方說最後15幀,並檢查它們是否都在相同的範圍內(例如50到80度之間),所有這些在視頻仍在運行時。但我想刪除以前的那些爲了節省內存(因爲它是視頻採集它可以永遠運行),或者如果不可能,我怎麼能總是比較過去的15幀?
function DetectTarget2()
clc;imaqreset;close all;
try
% For linux
Vid = videoinput('linuxvideo', 1);
catch
try
% For mac
Vid = videoinput('macvideo', 1);
catch
errordlg('No webcam available');
end
end
set(Vid,'FramesPerTrigger',1); %capture 1 frame every time Vid is triggered
set(Vid,'TriggerRepeat',Inf); %infinite amount of triggers
set(Vid,'ReturnedColorSpace','RGB');
triggerconfig(Vid, 'Manual'); %trigger Vid manually within program
t = timer('TimerFcn',@dispim, 'Period', 0.04,...
'executionMode','fixedRate');
function dispim(~,~)
trigger(Vid)%trigger Vid to capture image
im=getdata(Vid,1);
detector = vision.CascadeObjectDetector('Cascade1Matlab.xml');
bbox = step(detector, im);
% CALCULATIONS
degrees=result;
end
end
你解決了你的問題嗎?如果我的答案解決了您的問題,我會很高興,如果它可以被標記爲解決方案,並可能收到upvote。如果沒有,我會有興趣聽到你的問題的一些額外的解釋或爲什麼我的答案不能解決你的問題。 – Trilarion 2015-02-12 13:08:08
噢,是的,我非常抱歉,前幾天當我遇到互聯網連接問題時我正在做這件事,之後我完全忘記了。非常感謝! – Zynk 2015-02-12 17:01:15