using kinect xbox one camera

조회 수: 6(최근 30일)
raymon saadalla
raymon saadalla 2017년 7월 14일
답변: Walter Roberson 2017년 7월 17일
Hi All I am trying to do right now is to capture frames from the kinect color camera and preview them. for some reasons my code only show the last frame. _____________________________________________________--
vid = videoinput('kinect',1,'BGR_1920x1080');
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb')
vid.FrameGrabInterval = 5;
% Set a loop that stop after 100 frames of aquisition
% Get the snapshot of the current fram
data = getsnapshot(vid);
hold on
e=text(480,40, strcat('Between Angle: ', num2str((z))));
set(e, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color', 'yellow');
hold off
I am able to see the video(imshow) only at the last frame. I can't see the whole preview for soem reasons


Don Zheng
Don Zheng 2017년 7월 17일
First of all, "vid.FramesAcquired<=500" stops when 500 frames are acquired, not 100. FrameGrabInterval only controls how many frames to skip before acquiring the next frame. You might want to use vid.FramesAvailable instead to approximate 100 acquired frames.
Please refer to the property list for detailed definitions of each parameter:
Also, it says "The frame of data returned is independent of the video input object FramesPerTrigger property and has no effect on the value of the FramesAvailable or FramesAcquired property."
This means that 'getsnapshot' is not controlling the loop because it is not controlling vid.FramesAcquired (or vid.FramesAvailable). Frame acquisition may happen any time during the script execution and there might be more than 1 frames being acquired during the execution of a loop. So the loop may be executed for (if not far) fewer than the expected number of times.

Walter Roberson
Walter Roberson 2017년 7월 17일
After your "hold off" add a "drawnow()" call.


Community Treasure Hunt

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

Start Hunting!

Translated by