В этом примере показано, как разработать алгоритм Vision HDL Toolbox™ для интегрирования в существующую систему, которая использует протокол сигнала Camera Link ®.
Блоки Vision HDL Toolbox используют пользовательский формат потокового видео. Если вы интегрируете алгоритмы Vision HDL Toolbox в существующий проект и верификации, который работает в другом формате потокового видео, необходимо преобразовать управляющие сигналы на контурах. Пример использует пользовательские системные объекты, чтобы преобразовать сигналы управления между форматом Camera Link и Vision HDL Toolbox pixelcontrol
формат. Модель импортирует системные объекты в Simulink ® с помощью блока MATLAB ® System.
Эта модель импортирует пиксельные данные и сигналы управления в формате Camera Link из рабочего пространства MATLAB. The CameraLink_InvertImage
Подсистема предназначена для интегрирования в существующие системы, использующие протокол Camera Link. The CameraLink_InvertImage
подсистема преобразует сигналы управления из формата Camera Link в pixelcontrol
формат, изменяет пиксельные данные с помощью блока Интерполяционная таблица, а затем преобразует управляющие сигналы обратно в формат Camera Link. Модель экспортирует полученные данные и сигналы управления в переменные рабочей области.
The CameraLink2VHT
и VHT2CameraLink
блоки являются системными блоками MATLAB, которые указывают на пользовательские системные объекты. Объекты преобразуются между сигналами Camera Link и pixelcontrol
формат, используемый блоками и объектами Vision HDL Toolbox.
Можно поместить любую комбинацию блоков Vision HDL Toolbox в середину подсистемы. Этот пример использует Интерполяционную таблицу инверсии.
Можно сгенерировать HDL из этой подсистемы.
Camera Link состоит из трех сигналов управления: F указывает на допустимую систему координат, L указывает на каждую допустимую линию, и D указывает на каждый действительный пиксель. В данном примере входные данные и сигналы управления определены в InitFcn
коллбэк. Векторы описывают эту 8-битную полутоновую систему координат 2 на 3. На рисунке активная область изображения находится в штриховом прямоугольнике, и неактивные пиксели окружают его. Пиксели маркируются своими значениями в градациях серого.
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]);
Написание пользовательского системного объекта для преобразования сигналов Camera Link в формат Vision HDL Toolbox. В этом примере используется объект, разработанный в примере Преобразования сигналов управления камерой в pixelcontrol Format.
Объект преобразует сигналы управления, а затем создает структуру, которая содержит новые сигналы управления. Когда объект включен в системный блок MATLAB, блок переводит эту структуру в формат шины, ожидаемый блоками Vision HDL Toolbox. Полный код для Системного объекта см. в разделе CAMERALINKtoVHT_Adapter.m
.
Создайте блок MATLAB System и наведите его на системный объект.
Выберите блоки Vision HDL Toolbox, чтобы обработать видеопоток. Эти блоки принимают и возвращают скалярное значение пикселя и pixelcontrol
шина, которая содержит соответствующие сигналы управления. Этот стандартный интерфейс облегчает соединение блоков из библиотек Vision HDL Toolbox вместе.
Этот пример использует блок Интерполяционная таблица, чтобы инвертировать каждый пиксель в тестовом изображении. Установите данные таблицы в противоположное значение uint8
цветовое пространство в полутоновом цвете.
Напишите пользовательский системный объект, чтобы преобразовать сигналы Vision HDL Toolbox обратно в формат Camera Link. В этом примере используется объект, разработанный в примере Преобразования сигналов управления камерой в pixelcontrol Format.
Объект принимает структуру управляющих сигналов. Когда вы включаете объект в блок MATLAB System, блок переводит вход pixelcontrol
шина в эту структуру. Затем вычисляет эквивалентные сигналы Camera Link. Полный код для Системного объекта см. в разделе VHTtoCAMERALINKAdapter.m
.
Создайте второй блок MATLAB System и наведите его на системный объект.
Запустите симуляцию. Получившиеся векторы представляют эту инвертированную 2 на 3, 8-битную полутоновую систему координат. На рисунке активная область изображения находится в штриховом прямоугольнике, и неактивные пиксели окружают его. Пиксели маркируются своими значениями в градациях серого.
Если у вас есть лицензия DSP System Toolbox™, вы можете просматривать сигналы с течением времени с помощью Logic Analyzer. Выберите все сигналы в CameraLink_InvertImage
и откройте Logic Analyzer. Эта форма волны показывает входные и выходные управляющие сигналы Camera Link и значения пикселей в верхней части, а также вход и выход блока Интерполяционная таблица в pixelcontrol
формат внизу. The pixelcontrol
шины расширяются, чтобы наблюдать логические сигналы управления.
Для получения дополнительной информации о наблюдении форм волны в Simulink, смотрите Просмотр и измерение переходов с помощью Logic Analyzer (DSP System Toolbox).
Для генерации HDL-кода необходимо иметь лицензию HDL- Coder™.
Чтобы сгенерировать HDL-код, используйте следующую команду.
makehdl('CameraLinkAdapterEx/CameraLink_InvertImage')
Теперь можно моделировать и синтезировать эти HDL- файлов вместе с существующей системой Ссылки фотоаппарата.