В этом примере показов, как разделить систему координат на мозаичные видимые области (ROIs) и использовать эти области, чтобы сконфигурировать блок информации только для чтения Selector для вертикального повторного использования.
Вертикальное повторное использование означает разделение каждой системы координат на выровненные по вертикали области, где каждый столбец областей имеет общий поток пикселей. Эта схема позволяет выполнять параллельную обработку каждого столбца и повторно использовать логику последующей обработки для каждой области в столбце.
Настройте размер системы координат.
frmActiveLines = 240; frmActivePixels = 320;
Разделите систему координат на выровненные по вертикали области равного размера или плитки. The 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
Блок информация только для чтения Selector в модели Simulink имеет порты Reuse выхода для вертикально выровненных областей параметра выбран и использует regions
переменная, чтобы задать свои выходные потоки. Блок имеет один выходной поток пикселей на столбец областей.
open_system('TiledROIHDL')
Сигналы начала и конца определяют каждую область в потоке пикселей. Когда вы запускаете модель, можно увидеть выход мозаичные области, изменяющиеся в окнах Left Средства просмотра и Right Средства просмотра. Пример выполняет противоположные операции гамма- коррекции на левой и правой плитках, а затем повторно собирает четыре плитки в полную систему координат путем манипулирования pixelcontrol
сигналы.
Интервал гашения, требуемый нижестоящим алгоритмом обработки, должен быть меньше, чем интервал между плитками. Интервал гашения после каждой области меньше одной строки пикселей, поэтому операции, которые требуют вертикального интервала гашения, как те, которые используют буфер линии, не работают. Операция гамма- коррекции использует интерполяционную таблицу, которая не требует интервала гашения.
sim('TiledROIHDL')