Регистрация данных к памяти

Этот пример показывает, как регистрировать данные изображения и просмотреть записанные данные.

Предварительно просматривание данных

Прежде, чем регистрировать данные, изображения от устройства получения изображений могут быть предварительно просмотрены живое использование функции PREVIEW. При вызывании функции PREVIEW, откроет окно предварительного просмотра. Чтобы закрыть окно предварительного просмотра, используйте функцию CLOSEPREVIEW.

% Access an image acquisition device.
vidobj = videoinput('winvideo', 1);
% Open the preview window.
preview(vidobj)

Одно приобретение кадра

Чтобы получить один кадр, используйте функцию GETSNAPSHOT.

snapshot = getsnapshot(vidobj);
% Display the frame in a figure window.
imagesc(snapshot)

Приобретение сверхкадра

Чтобы задать количество кадров, чтобы регистрировать после инициирования, сконфигурируйте свойство FramesPerTrigger объекта ввода видео.

% Configure the number of frames to log upon triggering.
vidobj.FramesPerTrigger = 50;

Объект получения изображений должен запускаться, прежде чем данные могут регистрироваться. Чтобы инициировать приобретение, используйте НАЧИНАТЬ функцию.

start(vidobj)
% Notice that the number of frames being logged to memory ...
numAvail = vidobj.FramesAvailable
numAvail =

     7

% ... is increasing ...
numAvail = vidobj.FramesAvailable
numAvail =

     14

% ... over time.
numAvail = vidobj.FramesAvailable
numAvail =

     21

Чтобы получить записанные данные из памяти, используйте функцию GETDATA с объектом ввода видео и количеством кадров, чтобы получить.

% Retrieve some of the logged frames.
imageData = getdata(vidobj, 30);
% Notice the number of frames remaining in memory.
numAvail = vidobj.FramesAvailable
numAvail =

     20

% Display the last frame extracted from memory.
imagesc(imageData(:,:,:,30))

% Wait for the acquisition to finish.
wait(vidobj);

Чтобы получать данные постоянно, сконфигурируйте свойство FramesPerTrigger к бесконечности. После инициирования будут регистрироваться данные, пока объект ввода видео не прекращает запускаться. Чтобы мешать объекту запуститься, используйте ОСТАНОВИТЬ функцию.

vidobj.FramesPerTrigger = inf;
% Initiate the acquisition.
start(vidobj)

% Notice the number of frames in memory.
numAvail = vidobj.FramesAvailable
numAvail =

     6

% Loop through till 10 frames are acquired
while(numAvail<=10)
    numAvail = vidobj.FramesAvailable;
end
% Stop the acquisition.
stop(vidobj)
% View the total number of frames that were logged before stopping.
numAcquired = vidobj.FramesAcquired;
numAcquired =

    10

% Retrieve all logged data.
imageData = getdata(vidobj, numAcquired);
% Display one of the logged frames.
imagesc(imageData(:,:,:,numAcquired))

Просмотр записанных данных.

Чтобы просмотреть последний раз регистрируемые данные изображения, не извлекая его из памяти, используйте функцию PEEKDATA с объектом ввода видео и количеством кадров, чтобы просмотреть. Просмотр записанных данных с помощью PEEKDATA не удалит записанных данных из памяти.

% Configure the number of frames to log upon triggering.
vidobj.FramesPerTrigger = 35;
% Initiate the acquisition.
start(vidobj)
% Wait for the acquisition to finish.
wait(vidobj, 3);
% Verify the number of frames logged to memory.
numAvail = vidobj.FramesAvailable
numAvail =

    35

% Access the logged data without extracting them from memory.
imageData = peekdata(vidobj, numAvail);
% Verify that all logged frames are still available in memory.
numFramesAvailable = vidobj.FramesAvailable
numFramesAvailable =

    35

Если объект ввода видео больше не необходим, удалите и очистите связанную переменную.

delete(vidobj)
clear vidobj