Многозонное измерение

В этом примере показов, как использовать блок Изображения Statistics для выполнения многозонного измерения для извлечения видимой области (ROI).

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

Введение

Система MultizoneMeteringHDL.slx показана ниже.

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

В этом примере подсистема извлечения ROI Pixel-Stream вычисляет среднее значение интенсивности по 12 предопределенным ROI в системе координат и выводит номер индекса (1-12), который соответствует наиболее освещенному информация только для чтения. Дочерняя подсистема выбора маски принимает этот номер индекса и выводит связанное двухкомпонентное изображение маски. Двухкомпонентное изображение маски применяется к исходному видео, чтобы отобразить только наиболее освещенный информация только для чтения и замаскировать другие 11 ROI. Блок Delay на верхнем уровне модели используется, чтобы соответствовать задержке, введенной обработкой пиксельного потока.

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

Можно сгенерировать HDL-код из подсистемы извлечения ROI Pixel-Stream.

Источник видео

Формат видео 240p. Каждая система координат состоит из 240 линий и 320 пикселей на строку. В этом примере видеокадры разделены на 12 неперекрывающихся прямоугольных областей интереса (ROI), обозначенных информацией только для чтения номером 1-12, как показано на схеме ниже. Каждый информация только для чтения включает одну клавишу изображения клавиатуры входа.

ROI номер 1 имеет ширину 107 пикселей и высоту 60 пикселей, и (x, y) координата его верхнего левого пикселя равна (1,1). ROI номер 2 имеет ширину 107 пикселей и высоту 60 пикселей, и координата его верхнего левого пикселя (108,1) и так далее. Первая система координат входа видео имеет более яркие пиксели в пределах информации только для чтения числа 1, как показано выше. Вторая система координат имеет более яркие пиксели в пределах информации только для чтения числа 2 и так далее.

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

Frame To Pixels преобразует полнокадровое изображение в поток пикселей. Чтобы симулировать эффект горизонтальных и вертикальных периодов гашения, обнаруженных в реальных аппаратных видеосистемах, активное изображение дополнено данными без неизображений. Дополнительные сведения о протоколе потокового пикселя см. в разделе Интерфейс потокового пикселя. Блок Frame To Pixels сконфигурирован как показано:

Поле Number of components устанавливается равным 1 для входа полутонового изображения, а поле Video format равняется 240p, чтобы соответствовать полю источника видео.

В этом примере область активного видео соответствует матрице 240x320 исходного изображения. Шесть других параметров, а именно Total pixels на линию, Total video lines, Starting active line, Ending active line, Front depch и Back devch задают, сколько данных без неизображений будет увеличено на четырех сторонах Активного видео. Для получения дополнительной информации смотрите Систему координат блока To Pixels страницы с описанием.

Обратите внимание, что шаг расчета источника видео определяется продуктом Total pixels на линию и Total video line.

Информация только для чтения в пиксельных потоках

Подсистема извлечения ROI Pixel-Stream содержит две подсистемы, а именно: Multi-Zone Metering и ROI Indexer.

Подсистема Multi-Zone Metering вычисляет среднее значение интенсивности по 12 предопределенным ROI. Получившиеся 12 средних значений передаются в дочернюю подсистему ROI Indexer. ROI Indexer выводит индекс (1-12) информация только для чтения, который имеет максимальное среднее значение интенсивности (или, эквивалентно, наиболее освещенный информация только для чтения) среди 12 кандидатов.

Структура подсистемы Multi-Zone Metering показана на схеме ниже.

Multi-Zone Metering подсистема содержит 12 одинаковых ROIStatistic подсистем. Каждый образец ROIStatistic вычисляет среднее значение интенсивности по одному информация только для чтения. Все 12 ROIStatistic подсистем берут пиксель и ctrl в качестве первых двух входов. Остальные четыре входа определяют, на каком информация только для чтения работает эта подсистема, и они отличаются от одной подсистемы к другой. Например, подсистема ROIStaticstic1 фокусируется на ROI № 1, принимая (x, y) координату верхнего левого пикселя (1,1), ширину ROI 107 и высоту 60. Точно так же ROIStaticstic12 подсистема особого внимания на информацию только для чтения числа 12, чья (x, y) координата верхней части левого пикселя является (215 181), и ширина и высота которых 106 и 60, соответственно.

Подсистемы ROIStatistic1 - ROIStatistic12 имеют ту же структуру, что и ниже.

Он содержит подсистему информация только для чтения, за которой следует блок Image Statistics. Подсистема информация только для чтения манипулирует управляющим сигналом исходного изображения 240p и создает управляющие сигналы, сопоставленные только с информация только для чтения, заданным парой (x, y), ROIWidth и ROIHeight.

Выбор маски

Структура подсистемы выбора маски показана ниже.

Доступно двенадцать масочных изображений, соответствующих 12 различным ROI. Эти шаблоны маски показаны на приведенной выше схеме как BM {1} - BM {12}. Когда вы открываете модель, модель загружает предопределенный массив ячеек BM в рабочую область. Маски являются бинарными изображениями с форматом видео 240p. Для маски BM {n} (n = 1,2,..., 12) число информации только для чтения n заполняется логическими 1 пикселями (белыми), а все другие 11 ROI заполняются логическими 0 пикселями (черными). Основываясь на входе индекса (1-12), Подсистема выбора маски выводит связанное двухкомпонентное изображение маски.

Генерация HDL-кода

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

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

makehdl('MultizoneMeteringHDL/Pixel-Stream ROI Extraction')

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

makehdltb('MultizoneMeteringHDL/Pixel-Stream ROI Extraction')