이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
메모리 사용 관리
메모리 해제
이미지 데이터를 수집하는 동안 메모리에 저장된 일부 또는 전체 프레임을 삭제하고 싶을 때가 있습니다. flushdata
함수를 사용하면 현재 메모리에 저장된 모든 프레임을 삭제하거나 트리거 실행과 관련된 프레임만 삭제할 수 있습니다.
다음 예제는 flushdata
를 사용하여 메모리에 있는 모든 프레임이나 하나의 트리거에 해당하는 프레임을 삭제하는 방법을 보여줍니다.
이미지 수집 객체 생성 — 이 예제에서는 Windows® 이미지 수집 장치에 대한 비디오 입력 객체를 생성합니다. 이 예제를 시스템에서 실행하려면
imaqhwinfo
함수를 사용하여 이미지 수집 장치에 대한 객체 생성자를 가져오고 해당 구문을 다음 코드로 바꾸세요.vid = videoinput('winvideo',1);
속성 구성 — 이 예에서는 트리거당 5개 프레임의 수집을 구성하고
flushdata
의 효과를 보여주기 위해TriggerRepeat
속성을 사용하여 여러 트리거를 구성합니다.vid.FramesPerTrigger = 5 vid.TriggerRepeat = 2;
이미지 수집 객체 시작 —
start
함수를 호출하여 이미지 수집 객체를 시작합니다.start(vid)
객체는 즉각적인 트리거를 실행하고, 5개 프레임의 데이터를 수집한 후, 이 트리거를 두 번 더 반복합니다. 지정된 수의 프레임을 기록한 후 객체는 실행을 멈춥니다.
객체가 데이터를 획득했는지 확인하려면
FramesAvailable
속성의 값을 봅니다. 이 속성은 현재 메모리 버퍼에 저장된 프레임 수를 보고합니다.vid.FramesAvailable ans = 15
트리거의 이미지 데이터 삭제 —
flushdata
함수를 호출하고 모드'triggers'
를 지정합니다. 이렇게 하면 가장 오래된 트리거와 관련된 프레임이 삭제됩니다.flushdata(vid,'triggers');
다음 그림은
flushdata
를 호출하기 전과 후에 획득한 프레임을 보여줍니다.flushdata
가 가장 오래된 트리거와 연관된 프레임을 삭제하는 방법에 주목하세요.객체가 프레임을 삭제했는지 확인하려면
FramesAvailable
속성의 값을 확인합니다.vid.FramesAvailable ans = 10
전체 메모리 버퍼 비우기 — 모드를 지정하지 않고
flushdata
를 호출하면 메모리에 저장된 모든 프레임이 삭제됩니다.flushdata(vid);
객체가 프레임을 삭제했는지 확인하려면
FramesAvailable
속성의 값을 확인합니다.vid.FramesAvailable ans = 0
정리 — 더 이상 필요하지 않으면 메모리에서 이미지 수집 객체와 이를 참조하는 변수를 항상 제거합니다.
delete(vid) clear vid