Чтобы указать тип триггера, который требуется выполнить, задайте значение TriggerType свойство объекта ввода видео. Необходимо использовать triggerconfig для установки значения этого свойства. В следующей таблице перечислены все типы триггеров, поддерживаемые панелью инструментов, с информацией о том, когда использовать каждый тип триггера.
Сравнение типов триггеров
Значение TriggerType | Значения TriggerSource и TriggerCondition | Описание |
|---|---|---|
| Всегда | Триггер возникает автоматически, сразу после |
| Всегда | Триггер возникает при выдаче |
| Специфичные для устройства | Аппаратные триггеры - это внешние сигналы, которые обрабатываются непосредственно аппаратными средствами. Этот тип триггера используется, когда синхронизация с другим устройством является частью настройки получения изображения или когда требуется скорость. Аппаратное устройство может обрабатывать входной сигнал гораздо быстрее, чем программное обеспечение. Дополнительные сведения см. в разделе Использование аппаратного триггера. Примечание Аппаратные триггеры поддерживает только подмножество устройств получения изображений. Сведения о типах триггеров, поддерживаемых устройством, см. в разделе Определение допустимых конфигураций. |
Примечание
Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB ®. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.
Чтобы использовать немедленный триггер, просто создайте объект ввода видео. Немедленное срабатывание является типом триггера по умолчанию для всех объектов ввода видео. С немедленным триггером объект выполняет триггер сразу после запуска объекта с помощью start команда. На следующем рисунке показан немедленный триггер.
Немедленный триггер

Следующий пример иллюстрирует использование немедленного триггера:
Создать объект получения изображения - в этом примере создается объект ввода видео для устройства получения изображения Matrox ®. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом.
vid = videoinput('matrox',1);Убедитесь, что объект не получил ни одного кадра.
vid.FramesAcquired ans = 0
Настроить свойства - для использования немедленного триггера нет необходимости настраивать TriggerType собственность, потому что 'immediate' является типом триггера по умолчанию. Вы можете проверить это, используя triggerconfig для просмотра текущей конфигурации триггера или путем просмотра свойств объекта ввода видео.
triggerconfig(vid)
ans =
TriggerType: 'immediate'
TriggerCondition: 'none'
TriggerSource: 'none'В этом примере задается значение FramesPerTrigger свойство для 5. (Значение по умолчанию - 10 кадров на триггер.)
vid.FramesPerTrigger = 5
Запуск объекта сбора изображений - вызовите start для запуска объекта получения изображения. По умолчанию объект выполняет немедленный триггер и получает пять кадров данных, регистрируя данные в буфере памяти. После регистрации указанного количества кадров объект прекращает работу.
start(vid)
Чтобы убедиться, что объект получил данные, просмотрите значение FramesAcquired собственность. Объект обновляет значение этого свойства по мере получения данных.
vid.FramesAcquired ans = 5
Чтобы выполнить другой немедленный триггер, необходимо перезапустить объект. Однако следует отметить, что при этом удаляются данные, полученные первым триггером. Чтобы выполнить несколько немедленных триггеров, укажите значение TriggerRepeat собственность. Дополнительные сведения см. в разделе Указание нескольких триггеров.
Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.
delete(vid) clear vid
Для использования ручного триггера создайте объект ввода видео и задайте значение TriggerType свойство для 'manual'. Объект ввода видео выполняет ручной триггер после ввода trigger функция. На следующем рисунке показан ручной триггер.
Ручной триггер

Следующий пример иллюстрирует использование ручного триггера:
Создать объект получения изображения - в этом примере создается объект ввода видео для устройства получения изображения веб-камеры. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом.
vid = videoinput('winvideo',1);
Убедитесь, что объект не получил ни одного кадра.
vid.FramesAcquired ans = 0
Настройка свойств - установка параметров объекта ввода видео TriggerType свойство для 'Manual'. Установка значений определенных свойств триггера, включая TriggerType свойство, необходимо использовать triggerconfig функция. Дополнительные сведения см. в разделе Настройка значений свойств триггера.
triggerconfig(vid, 'Manual')
В этом примере также задается значение FramesPerTrigger свойство для 5. (Значение по умолчанию - 10 кадров на триггер.)
vid.FramesPerTrigger = 5
Запуск объекта сбора изображений - вызовите start для запуска объекта получения изображения.
start(vid);
Видеообъект сейчас запущен, но не заносится в журнал. При использовании триггеров вручную видеопоток начинается при запуске объекта, но кадры не собираются до тех пор, пока триггер не будет выполнен.
isrunning(vid)
ans =
1
islogging(vid)
ans =
0Убедитесь, что объект не получил ни одного кадра.
vid.FramesAcquired ans = 0
Выполните триггер вручную - вызовите trigger для выполнения ручного триггера.
trigger(vid)
Объект инициирует получение пяти кадров. Проверьте FramesAcquired снова для проверки того, что получены пять кадров.
vid.FramesAcquired ans = 5
После получения заданного количества кадров объект ввода видео прекращает работу.
isrunning(vid)
ans =
0Чтобы запустить другой триггер вручную, необходимо сначала перезапустить объект ввода видео. Следует отметить, что это удаляет кадры, полученные первым триггером. Для выполнения нескольких триггеров вручную укажите значение TriggerRepeat собственность. Дополнительные сведения см. в разделе Указание нескольких триггеров.
Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.
delete(vid) clear vid
Чтобы использовать аппаратный триггер, создайте объект ввода видео и задайте значение TriggerType свойство для 'hardware'. Необходимо также указать источник аппаратного триггера и вид условия. Аппаратное обеспечение отслеживает источник, указанный для указанного условия. На следующем рисунке показан аппаратный триггер. Для аппаратных триггеров видеопоток не запускается до тех пор, пока не произойдет триггер.
Примечание
Источники триггеров и условия управления аппаратными триггерами зависят от конкретного устройства. Используйте triggerinfo определяет, поддерживает ли устройство сбора изображений аппаратные триггеры, и, если поддерживает, какие условия можно настроить. Более подробную информацию о возможностях запуска оборудования можно найти в документации, поставляемой вместе с устройством.
Аппаратный триггер

В следующем примере показано, как использовать аппаратный триггер:
Создать объект получения изображения - в этом примере создается объект ввода видео для устройства получения изображения Matrox. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом. Устройство должно поддерживать аппаратные триггеры.
vid = videoinput('matrox',1);
Определение допустимых конфигураций свойств триггера - используйте triggerinfo чтобы определить, поддерживает ли устройство получения изображений аппаратные триггеры, и, если да, то выяснить действительные конфигурации TriggerSource и TriggerCondition свойства. Дополнительные сведения см. в разделе Определение допустимых конфигураций.
В этом примере: triggerinfo возвращает следующие допустимые конфигурации триггера.
triggerinfo(vid)
Valid Trigger Configurations:
TriggerType: TriggerCondition: TriggerSource:
'immediate' 'none' 'none'
'manual' 'none' 'none'
'hardware' 'risingEdge' 'TTL'
'hardware' 'fallingEdge' 'TTL' Настроить свойства - настроить свойства триггера объекта ввода видео на одну из допустимых комбинаций, возвращаемых triggerinfo. Можно указать каждое значение свойства в качестве аргумента для triggerconfig функция
triggerconfig(vid, 'hardware','risingEdge','TTL')
Кроме того, можно задать эти значения, передав одну из структур, возвращенных triggerinfo функции к triggerconfig функция.
configs = triggerinfo(vid); triggerconfig(vid,configs(3));
В этом примере также задается значение FramesPerTrigger свойство для 5. (Значение по умолчанию - 10 кадров на триггер.)
vid.FramesPerTrigger = 5
Запуск объекта сбора изображений - вызовите start для запуска объекта получения изображения.
start(vid)
Объект запущен, но не записывает данные в журнал.
isrunning(vid)
ans =
1
islogging(vid)
ans =
0Аппаратное обеспечение начинает мониторинг источника триггера для указанного состояния. Когда условие выполняется, аппаратные средства выполняют триггер и начинают предоставлять кадры изображения объекту. Объект получает количество кадров, указанное FramesPerTrigger собственность. Просмотр значения FramesAcquired свойство для просмотра объема полученных данных. Объект обновляет значение этого свойства по мере получения данных.
vid.FramesAcquired
ans =
5После выполнения триггера и получения заданного количества кадров объект ввода видео прекращает работу.
isrunning(vid)
ans =
0Чтобы выполнить другой аппаратный триггер, необходимо сначала перезапустить объект ввода видео. Следует отметить, что это удаляет кадры, полученные первым триггером. Для выполнения нескольких триггеров укажите значение TriggerRepeat собственность. Дополнительные сведения см. в разделе Указание нескольких триггеров.
Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.
delete(vid) clear vid
Теперь можно использовать все режимы триггера и все входы триггера, поддерживаемые камерами DCAM. Предыдущие выпуски панели инструментов поддерживались только в режиме триггера 0. Поддержка дополнительных режимов и входов триггера не влияет ни на один используемый код.
Управление функциональностью триггера с помощью triggerinfo и triggerconfig функции и triggersource собственность. Перед R2010a, один triggersource был доступен, externalTrigger. Выбор externalTrigger настраивает камеру на использование режима триггера 0 с источником триггера 0.
triggersource Теперь свойство состоит из типа триггера (внутренний или внешний), источника триггера (0, 1, 2 и т.д.) и номера режима (от 0 до 5, 14 и 15). В следующей таблице представлены параметры.
| Режим триггера | Параметр | Внешний источник | Несколько кадров на триггер |
|---|---|---|---|
| 0 | ничего | да | да |
| 1 | ничего | да | нет |
| 2 | (N > = 2) | да | нет |
| 3 | (N > = 1) | нет | да |
| 4 | (N > = 1) | да | нет |
| 5 | (N > = 1) | да | нет |
| 14 | неизвестный | неизвестный | неизвестный |
| 15 | неизвестный | неизвестный | неизвестный |
Например, второй triggersource для триггерного режима 1 вызывается externalTrigger1-mode1. Для использования режима 3, triggersource является internalTrigger-mode3.
Примечание
Версии панели инструментов до R2010a поддерживаемого режима триггера DCAM 0 с первыми доступными triggersource как externalTrigger. Существующее externalTrigger свойство будет сохранено, чтобы предотвратить проблемы обратной совместимости. Кроме того, чтобы сохранить симметрию с новой функциональностью, triggersource externalTrigger0-mode0, что является синонимом, также будет поддерживаться. Новые триггерные режимы не работают до R2010a.
Примечания по использованию
Если режим триггера имеет несколько источников триггера (режимы 0, 1, 2, 4, и 5), то triggersource имеет цифру, указывающую соответствующий источник камеры, даже если доступен только один источник камеры. Например, если камера имеет только одну triggersource доступно, панель инструментов сообщает triggersource наименование как externalTrigger0-modeX. Если триггерный режим не имеет нескольких источников (режим 3), то в имени не отображается исходная цифра (т.е. internalTriggerMode3 вместо internalTriggerMode3-Source0).
Адаптер DCAM включает в себя TriggerParameter свойство, передаваемое камере при настройке конфигурации триггера. TriggerParameter свойство проверяется при вызове START после выбора режима аппаратного триггера.
Если выбранный режим триггера запрещает несколько кадров на триггер, то при вызове появляется ошибка START без настройки FramesPerTrigger кому 1.
Если камера поддерживает только режим триггера 0 с источником 0, то первоначальная функциональность иметь только externalTrigger triggersource поддерживается.
Режимы запуска 14 и 15 зависят от поставщика и считаются внешними триггерами и не имеют ограничений на какие-либо настройки. Необходимо проверить все используемые параметры.
В следующих разделах подробно описаны режимы триггера.
Это единственный режим триггера, поддерживаемый до R2010a. При приеме триггера происходит получение кадра. Можно получить несколько кадров на триггер, переключив камеру в режим аппаратного запуска в режим свободного запуска при получении запускаемого кадра.
Параметр не требуется.

Камера начинает интеграцию входящего света от внешнего входного заднего края триггера.
В этом режиме длительность сигнала запуска используется для управления временем интегрирования входящего света. Этот режим используется для синхронизации времени экспозиции камеры с внешним событием.
Параметр не требуется.

Камера начинает интеграцию входящего света от внешнего входного заднего края триггера. Время интеграции равно времени низкого состояния входа внешнего триггера, если triggersource является fallingEdge, в противном случае он равен высокому времени состояния.
Этот режим аналогичен режиму 1, за исключением длительности триггерного сигнала, который управляет временем интегрирования. Вместо этого количество принятых триггерных сигналов равно. Интеграция начинается с начала первого триггерного сигнала и продолжается до начала NТХ триггерный сигнал.
Параметр N требуется и описывает количество триггерных сигналов в интеграции.

Камера начинает интеграцию входящего света с первого внешнего входного заднего края триггера. На Nтретий внешний пусковой вход опускается, интеграция прекращается. Параметр N является обязательным и должен быть 2 или больше. (N > = 2).
Этот режим внутреннего триггера используется для достижения более низкой частоты кадров. При внутренней генерации триггера происходит получение и возврат кадра. Новый кадр не получен для N x Tf когда N - параметр, а Tf - время цикла самой быстрой частоты кадров, поддерживаемой камерой.
Требуется параметр, как описано выше.

Это внутренний режим триггера. Камера выдает триггер внутри системы, и время цикла составляет N раз от времени цикла самой высокой частоты кадров. Время интегрирования входящего света описывается в регистре затвора. Параметр N является обязательным и должен быть 1 или больше (N > = 1).
Этот режим является «режимом предустановки нескольких затворов». Он аналогичен режиму 1, но время экспозиции определяется свойством затвора. На каждом триггере свойство shutter определяет длительность экспозиции. Когда принимают N триггеров, получают кадр.
Параметр N требуется и описывает количество триггеров.

Камера начинает интеграцию входящего света от первого внешнего входного заднего края триггера и экспонирует входящий свет во время затвора. Повторяйте эту последовательность до N-го входа внешнего триггера, а затем завершите интеграцию. Параметр N является обязательным и должен быть 1 или больше (N > = 1).
Этот режим является «режимом длительности импульса с несколькими затворами». Это комбинация режимов 1 и 2. Время экспозиции определяется длительностью сигнала запуска, и ряд сигналов запуска может быть интегрирован в одно считывание. Если параметр триггера имеет значение 1, этот режим вырожден с режимом 1.
Требуется параметр. Параметр описывает количество триггеров.

Камера начинает интеграцию входящего света от первого внешнего входа триггера и открывает входящий свет до тех пор, пока триггер не станет неактивным. Повторяйте эту последовательность до N-го входа внешнего триггера, а затем завершите интеграцию. Параметр N является обязательным и должен быть 1 или больше (N > = 1).
Это режим, зависящий от поставщика, и информация недоступна. Обратитесь к документации для камеры.
Это режим, зависящий от поставщика, и информация недоступна. Обратитесь к документации для камеры.