이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
메모리에 데이터 기록하기
R2026b이 예제는 이미지 데이터를 기록하고 기록된 데이터를 확인하는 방법을 보여줍니다.
데이터 미리보기
데이터를 기록하기 전에, ‘미리보기(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 함수를 사용하십시오.
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 속성을 무한대로 설정하십시오. 트리거가 발생하면, 비디오 입력 객체의 실행이 중지될 때까지 데이터가 기록됩니다. 객체의 실행을 중지하려면 STOP 함수를 사용하십시오.
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