exponenta event banner

visionhdlframetoregions

Преобразовать размеры видеокадров в области, представляющие интерес

    Описание

    пример

    regions = visionhdlframetoregions(activePixelsPerLine,activeLines,numHorTiles,numVerTiles) преобразует activePixelsPerLineоколо-activeLines видеокадр в numHorTiles×numVerTiles неперекрывающиеся области, допустимые для повторного использования по вертикали с блоком выбора окупаемости инвестиций или visionhdl.ROISelector object™ системы. По умолчанию функция возвращает набор областей одинакового размера и игнорирует все оставшиеся пикселы справа и внизу кадра.

    regions = visionhdlframetoregions(activePixelsPerLine,activeLines,numHorTiles,numVerTiles,'numPix',4) возвращает области, совместимые с многопиксельной потоковой передачей. Можно задать numPix кому 4 или 8.

    regions = visionhdlframetoregions(activePixelsPerLine,activeLines,numHorTiles,numVerTiles,'fillType','full') возвращает области, охватывающие весь размер кадра. Если остальные пиксели справа и внизу кадра существуют, функция расширяет правую и нижнюю области, чтобы включить остальные пиксели.

    На этой схеме кадр слева показывает поведение функции по умолчанию. Кадр 160 на 120 пикселей, разделённый на пять горизонтальных и три вертикальных плитки. Функция возвращает набор из пятнадцати областей 30 на 40 пикселей и игнорирует 10 оставшихся пикселей справа от кадра (синий).

    На этой схеме в рамке справа показаны области, возвращаемые при указании 'filltype','full' аргумент. Аналогично предыдущему случаю кадр составляет 160 на 120 пикселей, разделённый на пять горизонтальных и три вертикальных плитки. Функция возвращает двенадцать областей 30 на 40 пикселей и три области 40 на 40, которые включают остальные пиксели справа от кадра.

    Примеры

    свернуть все

    В этом примере показано, как разделить кадр на области, представляющие интерес (ROI), и использовать эти области для конфигурирования блока выбора ROI для вертикального повторного использования.

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

    Задайте размер кадра.

    frmActiveLines = 240;
    frmActivePixels = 320;
    

    Разделите рамку на выровненные по вертикали области или фрагменты одинакового размера. visionhdlframetoregions функция возвращает массив таких областей, где каждая область определяется четырьмя координатами и имеет вид [hPos vPos hSize vSize]. Эти подсчеты плиток равномерно делятся на размеры кадра, поэтому остальные пикселы отсутствуют. Области вывода охватывают весь кадр.

    numHorTiles = 2;
    numVerTiles = 2;
    regions = visionhdlframetoregions(frmActivePixels,frmActiveLines,numHorTiles,numVerTiles)
    
    regions =
    
         1     1   160   120
       161     1   160   120
         1   121   160   120
       161   121   160   120
    
    

    Для блока выбора ROI в модели Simulink выбран параметр Reuse output ports for vertical aligned regions и используется параметр regions для определения выходных потоков. Блок имеет один выходной поток пикселей на столбец областей.

    open_system('TiledROIHDL')
    

    Сигналы начала и конца определяют каждую область в потоке пикселей. При запуске модели можно увидеть изменение выходных областей мозаики в окнах Левый просмотр (Left Viewer) и Правый просмотр (Right Viewer). Пример выполняет противоположные операции гамма-коррекции на левой и правой плитках, а затем повторно собирает четыре плитки в полный кадр, манипулируя pixelcontrol сигналы.

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

    sim('TiledROIHDL')
    

    Входные аргументы

    свернуть все

    Число пикселей в горизонтальной линии активного входного кадра, указанное как положительное целое число. Функция делит это измерение на numHorTiles столбцы. Все остальные пикселы от этого деления обрабатываются в соответствии с 'filltype' установка.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

    Число горизонтальных строк в активном входном кадре, указанное как положительное целое число. Функция делит это измерение на numVerTiles строк. Все остальные пикселы от этого деления обрабатываются в соответствии с 'filltype' установка.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

    Число плиток в горизонтальном направлении, указанное как положительное целое число. Функция возвращает numHorTiles×numVerTiles регионы. Это значение должно находиться в диапазоне [1, 16].

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

    Число плиток в вертикальном направлении, указанное как положительное целое число. Функция возвращает numHorTiles×numVerTiles регионы. Это значение должно находиться в диапазоне [1, 1024].

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

    Выходные аргументы

    свернуть все

    Области, представляющие интерес, возвращенные как numHorTiles×numVerTiles-на-4 матрица. Каждая область представлена четырьмя положительными целыми числами, которые определяют координаты верхнего левого угла и размеры области, [hPos vPos hSize vSize]. Используйте эти области для конфигурирования блока выбора окупаемости инвестиций или visionhdl.ROISelector Системный объект для повторного использования по вертикали. Области в каждом столбце совместно используют выходной поток пикселей блока или системного объекта.

    Представлен в R2020b