Обнаружение ребра и наложение изображений

Этот пример демонстрирует, как обнаружить и подсветить края объекта в видеопотоке. Поведение пиксельного потока Детектор Ребра Sobel, выравнивание видеопотока, и наложение, проверяется путем сравнения результатов с тем же алгоритмом, вычисленным блоками полной системы координат из Computer Vision Toolbox™.

Эта модель в качестве примера предоставляет аппаратно-совместимый алгоритм. Можно реализовать этот алгоритм на плате с помощью исходного проекта Xilinx™ Zynq™. Смотрите Алгоритмы визуализации Разработки для Находящегося в Zynq Оборудования (Пакет Поддержки Computer Vision Toolbox для Xilinx Находящееся в Zynq Оборудование).

Структура примера

Систему EdgeDetectionAndOverlayHDL.slx показывают ниже.

Различие в цвете линий, питающих Подсистемы модели HDL Поведенческой модели и Пиксельного Потока Полной Системы координат, указывает на изменение в уровне изображений на ветви потоковой передачи модели. Этот переход уровня состоит в том, потому что пиксельный поток отослан за то же количество времени как полные видеокадры, и поэтому это передается на более высоком уровне.

Поведенческая модель полной системы координат

Следующая схема показывает структуру подсистемы Поведенческой модели Полной Системы координат, которая использует основанный на системе координат блок Edge Detection.

Учитывая, что основанный на системе координат блок Edge Detection не вводит задержку, наложение изображений выполняется путем взвешивания исходного изображения и выходного изображения Обнаружения Ребра, и добавления их вместе прямым способом.

Одну систему координат исходного видео, результата обнаружения ребра и наложенного изображения показывают слева направо в схеме ниже.

Это - хорошая практика, чтобы разработать поведенческие системные блоки использования, которые обрабатывают кадры полного образа, подсистему Поведенческой модели Полной Системы координат в этом примере, перед продвижением к тому, чтобы работать над предназначающимся для FPGA проектом. Такая поведенческая модель помогает проверить проект обработки видеоданных. Позже, это может служить ссылкой для проверки реализации алгоритма, предназначенного к FPGA. А именно, PSNR (пиковое отношение сигнал-шум) блок в верхнем уровне модели сравнивает результаты обработки полной системы координат с теми от обработки пиксельного потока.

Система координат к пикселям: генерация пиксельного потока

Задача Системы координат К Пикселям состоит в том, чтобы преобразовать полное изображение системы координат в пиксельный поток. Чтобы симулировать эффект горизонтальных и вертикальных времен гашения обратного хода, найденных в реальных аппаратных системах видео, активное изображение увеличивается с неданными изображения. Для получения дополнительной информации о пиксельном протоколе потоковой передачи смотрите Пиксельный Интерфейс Потоковой передачи (Vision HDL Toolbox). Блок Frame To Pixels сконфигурирован как показано:

Номер поля компонентов определяется к 1 для входа полутонового изображения, и поле Формата видео составляет 240 пунктов, чтобы совпадать с тем из источника видеосигнала.

В этом примере Активная Видео область соответствует 240x320 матрица темного изображения от восходящего блока Corruption. Шесть других параметров, а именно, Общие пиксели на строку, Общие видео линии, Запуская активную линию, Заканчивая активную линию, Передний подъезд и Заднее крыльцо задают, сколько неданных изображения будет увеличено на четырех сторонах Активного Видео. Для получения дополнительной информации смотрите страницу с описанием блока Frame To Pixels.

Обратите внимание на то, что шаг расчета Источника видеосигнала определяется продуктом Общих пикселей на строку и Общих видео линий.

Обнаружение ребра пиксельного потока и наложение изображений

Подсистему модели HDL Пиксельного Потока показывают в схеме ниже. Можно сгенерировать HDL-код от этой подсистемы.

По причине обработки пиксельного потока, в отличие от блока Edge Detection в Поведенческой модели Полной Системы координат блок Edge Detector из Vision HDL Toolbox™ введет задержку. Задержка предотвращает нас от прямого взвешивания и добавления двух изображений, чтобы получить наложенное изображение. Чтобы решить эту проблему, блок Pixel Stream Aligner используется, чтобы синхронизировать потоки на два пикселя перед суммой.

Чтобы правильно использовать этот блок, refPixel и refCtrl должен быть соединен с пикселем и шиной управления, которые сопоставлены с задержанным пиксельным потоком. В нашем примере, из-за задержки, введенной Детектором Ребра, пиксельный поток, выходящий из Детектора Ребра, задерживается относительно того питания в него. Поэтому восходящим источником refPixel и refCtrl является Ребро и ctrl выход Детектора Ребра.

Пиксели, чтобы структурировать: преобразование пиксельного потока Назад к полной системе координат

Как компаньон, чтобы Структурировать К Пикселям, который преобразует систему координат полного образа в пиксельный поток, блок Pixels To Frame, противоположно, преобразует пиксельный поток назад в полную систему координат путем использования сигналов синхронизации. Поскольку выход блока Pixels To Frame является 2D матрицей полного образа, нет никакой потребности далее продолжить шину, содержащую пять сигналов синхронизации.

Номер поля компонентов и полей Формата видео и Системы координат К Пикселям и Пикселей, Чтобы Структурировать определяется в 1 и 240 пунктах, соответственно, чтобы совпадать с форматом источника видеосигнала.

Проверка пиксельного потокового проекта обработки

При создании фрагмента потоковой передачи проекта PSNR блочно-непрерывно проверяет результаты по исходному проекту полной системы координат. Блок Delay на верхнем уровне времени модели - выравнивает 2D матрицы для справедливого сравнения. В ходе симуляции блок PSNR должен дать inf выход, указав, что выходное изображение от Поведенческой модели Полной Системы координат совпадает с изображением, сгенерированным от потока, обрабатывающего Модель HDL Пиксельного Потока.

Исследование примера

Пример позволяет вам экспериментировать с различным порогом и альфа-значениями, чтобы исследовать их эффект на качестве наложенных изображений. А именно, две переменные рабочей области и с начальными значениями 7 и 0.8, соответственно, создаются после открытия модели. Можно изменить их значения с помощью командной строки MATLAB можно следующим образом:

thresholdValue=8
alpha=0.5

Обновленный будет распространен к полю Threshold блока Edge Detection в Поведенческой модели Полной Системы координат и блока Edge Detector в Обнаружении Модели/Ребра HDL Пиксельного Потока. Значение будет распространено с блоком Gain1 в Наложении Модели/Изображения HDL Поведенческой модели и Пиксельного Потока Полной Системы координат и значением движений с блоками Gain2. Закрытие модели очищает обе переменные из вашей рабочей области.

В этом примере допустимая область значений - между 0 и 256, включительно. При установке равный или больше, чем 257 триггеров переполнение Параметра сообщения произошло для 'порога'. Чем выше вы устанавливаете, тем меньшим сумма ребер пример находит в видео.

Допустимая область значений - между 0 и 1, включительно. Это определяет веса для выходного изображения обнаружения ребра и изображения первоисточника прежде, чем добавить их. Операция наложения является линейной интерполяцией согласно следующей формуле.

   overlaid image = alpha*source image + (1-alpha)*edge image.

Поэтому, когда, наложенное изображение является обнаружением ребра выход, и когда это становится исходным изображением.

Сгенерируйте HDL-код и проверьте его поведение

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

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

makehdl('EdgeDetectionAndOverlayHDL/Pixel-Stream HDL Model');

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

makehdltb('EdgeDetectionAndOverlayHDL/Pixel-Stream HDL Model');