Этот пример показывает, как разработать алгоритм 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]);
Запишите пользовательский Системный объект, чтобы преобразовать сигналы Ссылки Камеры в формат Vision HDL Toolbox. Этот пример использует объект, разработанный в Сигналах Управления камерой Преобразования к pixelcontrol примеру Формата.
Объект преобразовывает управляющие сигналы, и затем создает структуру, которая содержит новые управляющие сигналы. Когда объект включен в блок MATLAB System, блок переводит эту структуру в формат шины, ожидаемый блоками Vision HDL Toolbox. Для полного кода для Системного объекта см. CAMERALINKtoVHT_Adapter.m.
Создайте блок MATLAB System и укажите его на Системный объект.
Выберите блоки Vision HDL Toolbox, чтобы обработать видеопоток. Эти блоки принимают и возвращают скалярное пиксельное значение и шину pixelcontrol
, которая содержит связанные управляющие сигналы. Этот стандартный интерфейс дает возможность соединять блоки от библиотек Vision HDL Toolbox вместе.
Этот пример использует блок Lookup Table, чтобы инвертировать каждый пиксель в тестовом изображении. Установите табличные данные на реверс полутонового цветового пространства uint8
.
Запишите пользовательский Системный объект, чтобы преобразовать сигналы 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 Coder™.
Чтобы сгенерировать HDL-код, используйте следующую команду.
makehdl('CameraLinkAdapterEx/CameraLink_InvertImage')
Можно теперь моделировать и синтезировать эти файлы HDL наряду с существующей системой Ссылки Камеры.