Использование памяти управления

Освобождение памяти

Время от времени, при передавании изображений, вы можете хотеть удалить некоторых или все системы координат, которые хранятся в памяти. Используя flushdata функция, можно удалить все системы координат, в настоящее время сохраненные в памяти или только тех системах координат, сопоставленных с выполнением триггера.

Следующий пример иллюстрирует, как использовать flushdata удалить все системы координат в памяти или ценности одного триггера систем координат.

  1. Создайте объект получения изображений — Этот пример создает объект ввода видео для Windows® устройство получения изображений. Чтобы запустить этот пример в вашей системе, используйте imaqhwinfo функция, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.

    vid = videoinput('winvideo',1);
  2. Сконфигурируйте свойства — В данном примере конфигурируют захват пяти систем координат на триггер и, чтобы показать эффект flushdata, сконфигурируйте несколько триггеров с помощью TriggerRepeat свойство.

    vid.FramesPerTrigger = 5
    vid.TriggerRepeat = 2;
  3. Запустите объект получения изображений — Вызов start функционируйте, чтобы запустить объект получения изображений.

    start(vid)

    Объект выполняет мгновенный триггер, получает пять систем координат данных и повторяет этот триггер еще два раза. После логгирования конкретного количества систем координат объект прекращает запускаться.

    Чтобы проверить, что объект получил данные, просмотрите значение FramesAvailable свойство. Это свойство сообщает, сколько систем координат в настоящее время хранится в буфере памяти.

    vid.FramesAvailable
    ans =
    
       15
  4. Удалите ценность триггера данных изображения — Вызов flushdata функция, задавая режим 'triggers'. Это удаляет системы координат, сопоставленные с самым старым триггером.

    flushdata(vid,'triggers');

    Следующий рисунок показывает системы координат, полученные до и после вызова flushdata. Отметьте как flushdata удаляет системы координат, сопоставленные с самым старым триггером.

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

    vid.FramesAvailable
    ans =
    
       10
  5. Опорожните целый буфер памяти — Вызов flushdata не задавая режим удаляет все системы координат, сохраненные в памяти.

    flushdata(vid);

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

    vid.FramesAvailable
    ans =
    
       0
  6. Вымойтесь — Всегда удаляют объекты получения изображений из памяти и переменные, которые ссылаются на них, когда вам больше не нужны они.

    delete(vid)
    clear vid