Интеграция блоков Vision HDL с Camera Link

Этот пример показывает, как разработать алгоритм Vision HDL Toolbox для интегрирования в существующую систему, которая использует протокол сигнала Camera Link®.

Блоки Vision HDL Toolbox™ используют пользовательский формат потокового видео. Если вы интегрируете алгоритмы Vision HDL Toolbox в существующий проект и код подтверждения, который действует в различном формате потокового видео, необходимо преобразовать управляющие сигналы на контурах. Пример использует пользовательские Системные объекты, чтобы преобразовать управляющие сигналы между форматом Ссылки Камеры и Vision HDL Toolbox формат pixelcontrol. Модель импортирует Системные объекты к Simulink® при помощи блока MATLAB System.

Структура модели

Эта модель импортирует пиксельные данные и управляющие сигналы в формате Ссылки Камеры из рабочей области MATLAB®. Подсистема CameraLink_InvertImage разработана для интегрирования в существующие системы, которые используют протокол Ссылки Камеры. Подсистема CameraLink_InvertImage преобразовывает управляющие сигналы от формата Ссылки Камеры до формата pixelcontrol, изменяет пиксельные данные с помощью блока Lookup Table, и затем преобразовывает управляющие сигналы назад в формат Ссылки Камеры. Модель экспортирует получившиеся данные и управляющие сигналы к переменным рабочей области.

Структура подсистемы

CameraLink2VHT и блоки VHT2CameraLink являются Системными блоками MATLAB, которые указывают на пользовательские Системные объекты. Объекты преобразовывают между сигналами Ссылки Камеры и форматом pixelcontrol, используемым блоками Vision HDL Toolbox и объектами.

Можно поместить любую комбинацию блоков Vision HDL Toolbox в середину подсистемы. Этот пример использует Интерполяционную таблицу инверсии.

Можно сгенерировать HDL от этой подсистемы.

Импортируйте данные, при закрытых дверях соединяют формат

Ссылка камеры состоит из трех управляющих сигналов: F указывает, что допустимый кадр, L указывает на каждую допустимую строку, и D указывает на каждый допустимый пиксель. В данном примере входные данные и управляющие сигналы заданы в коллбэке InitFcn. Векторы описывают это 2 3, 8-битный полутоновый кадр. В фигуре область активного изображения находится в пунктирном прямоугольнике, и неактивные пиксели окружают его. Пиксели маркированы своими полутоновыми значениями.

  FIn = logical([0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0]);
  LIn = logical([0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0]);
  DIn = logical([0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0]);
  pixIn = uint8([0,0,0,0,0,0,0,30,60,90,0,0,0,120,150,180,0,0,0,0,0,0,0,0]);

Преобразуйте Управляющие сигналы Ссылки Камеры в pixelcontrol Формат

Запишите пользовательский Системный объект, чтобы преобразовать сигналы Ссылки Камеры в формат Vision HDL Toolbox. Этот пример использует объект, разработанный в Сигналах Управления камерой Преобразования к pixelcontrol примеру Формата.

Объект преобразовывает управляющие сигналы, и затем создает структуру, которая содержит новые управляющие сигналы. Когда объект включен в блок MATLAB System, блок переводит эту структуру в формат шины, ожидаемый блоками Vision HDL Toolbox. Для полного кода для Системного объекта см. CAMERALINKtoVHT_Adapter.m.

Создайте блок MATLAB System и укажите его на Системный объект.

Разработайте алгоритм Vision HDL Toolbox

Выберите блоки Vision HDL Toolbox, чтобы обработать видеопоток. Эти блоки принимают и возвращают скалярное пиксельное значение и шину pixelcontrol, которая содержит связанные управляющие сигналы. Этот стандартный интерфейс дает возможность соединять блоки от библиотек Vision HDL Toolbox вместе.

Этот пример использует блок Lookup Table, чтобы инвертировать каждый пиксель в тестовом изображении. Установите табличные данные на реверс полутонового цветового пространства uint8.

Преобразуйте pixelcontrol в Ссылку Камеры

Запишите пользовательский Системный объект, чтобы преобразовать сигналы Vision HDL Toolbox назад в формат Ссылки Камеры. Этот пример использует объект, разработанный в Сигналах Управления камерой Преобразования к pixelcontrol примеру Формата.

Объект принимает структуру управляющих сигналов. Когда вы включаете объект в блок MATLAB System, блок переводит шину входа pixelcontrol в эту структуру. Затем это вычисляет эквивалентные сигналы Ссылки Камеры. Для полного кода для Системного объекта см. VHTtoCAMERALINKAdapter.m.

Создайте второй блок MATLAB System и укажите его на Системный объект.

Просмотр результатов

Запустите симуляцию. Итоговые векторы представляют, это инвертировало 2 3, 8-битный полутоновый кадр. В фигуре область активного изображения находится в пунктирном прямоугольнике, и неактивные пиксели окружают его. Пиксели маркированы своими полутоновыми значениями.

Если у вас есть лицензия DSP System Toolbox™, можно просматривать сигналы в зависимости от времени с помощью Logic Analyzer. Выберите все сигналы в подсистеме CameraLink_InvertImage для потоковой передачи и откройте Logic Analyzer. Эта форма волны показывает управляющие сигналы Ссылки Камеры ввода и вывода и пиксельные значения наверху и ввод и вывод блока Lookup Table в формате pixelcontrol в нижней части. Шины pixelcontrol расширены, чтобы наблюдать булевы управляющие сигналы.

Для большего количества информации о наблюдении форм волны в Simulink смотрите, Осматривают и Переходы Меры Используя Logic Analyzer (DSP System Toolbox).

Сгенерируйте HDL-код для подсистемы

Чтобы сгенерировать HDL-код, у вас должна быть лицензия HDL Coder™.

Чтобы сгенерировать HDL-код, используйте следующую команду.

  makehdl('CameraLinkAdapterEx/CameraLink_InvertImage')

Можно теперь моделировать и синтезировать эти файлы HDL наряду с существующей системой Ссылки Камеры.

Похожие темы