Время от времени, при получении данных изображения, вы можете хотеть удалить некоторых или все кадры, которые хранятся в памяти. Используя функцию flushdata
, можно удалить все кадры, в настоящее время сохраненные в памяти или только тех кадрах, сопоставленных с выполнением триггера.
Следующий пример иллюстрирует, как использовать flushdata
, чтобы удалить все кадры в памяти или ценности одного триггера кадров.
Создайте объект получения изображений — Этот пример создает объект ввода видео для устройства получения изображений Windows®. Чтобы запустить этот пример в вашей системе, используйте функцию imaqhwinfo
, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.
vid = videoinput('winvideo',1);
Сконфигурируйте свойства — В данном примере конфигурируют приобретение пяти кадров на триггер и, чтобы показать эффект flushdata
, сконфигурировать несколько триггеров с помощью свойства TriggerRepeat
.
vid.FramesPerTrigger = 5 vid.TriggerRepeat = 2;
Запустите объект получения изображений — Вызывают функцию start
, чтобы запустить объект получения изображений.
start(vid)
Объект выполняет мгновенный триггер, получает пять кадров данных и повторяет этот триггер еще два раза. После журналирования конкретного количества кадров объект прекращает запускаться.
Чтобы проверить, что объект получил данные, просмотрите значение свойства 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