Filter löschen
Filter löschen

How to captured 60 Frames in 1 Sec?

5 Ansichten (letzte 30 Tage)
SAMEER ahamed
SAMEER ahamed am 11 Jan. 2014
Kommentiert: Walter Roberson am 14 Jan. 2014
Hi, below sample code which it's 60 frames per 60 seconds , but i need to generate 60 frames in 1 sec ? if any idea?
if true
% code
vid = videoinput('winvideo',1, 'MJPG_1280x720');
vid1 = vid;
num_frames=60;
triggerconfig(vid1, 'Manual');
set(vid1,'FramesPerTrigger',num_frames);
start(vid1);
while 1
[data1 time1] = getdata(vid1,num_frames);
kk=length(time1);
for i=1:kk
F=data1(:,:,:,i);
aviobj = addframe(aviobj,F);
end
aviobj = close(aviobj);
end
end

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 11 Jan. 2014
Your code will capture as many frames per second as it can. As you request that all 60 frames be captured in one command, you are already making the request as quickly as practical for that library interface.
With the code you show, there are three possible reasons that your code might take 60 seconds to capture 60 frames:
  1. your video camera frame-rate itself is set to 1 frame per second and you need to try to set() a different rate; or
  2. you are running out of physical memory and your system is paging to disk; or
  3. your bandwidth to your camera is not fast enough to transfer more than one frame per second at that image size
Question: why are you closing the aviobj within the "while 1" loop? You do not show opening the object.
  2 Kommentare
SAMEER ahamed
SAMEER ahamed am 14 Jan. 2014
Bearbeitet: Walter Roberson am 14 Jan. 2014
Now i have change above code like ,how to get 60 frames in 0.01 milliseconds any calculation need ?
vid = videoinput('winvideo',1, 'MJPG_1280x720');
vid1 = vid;
num_frames=60;
triggerconfig(vid1, 'Manual');
set(vid1,'FramesPerTrigger',num_frames);
start(vid1);
trigger(vid1);
frame = getsnapshot(vid1);
[data1 time1] = getdata(vid1,num_frames);
kk=length(time1);
disp(kk);%kk value 60
aviobj = avifile('myrecord17.avi');
for i=1:kk
F=data1(:,:,:,i);
aviobj = addframe(aviobj,F);
end
aviobj = close(aviobj);
Walter Roberson
Walter Roberson am 14 Jan. 2014
You may have to set() a framerate for vid1 . 60 frames per second might not be supported at that frame size.
Don't forget to configure the avifile object to display back at 60 frames per second; that is not the default.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Support Package for IP Cameras finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by