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