В этом примере показано, как использовать Для Каждого блока Subsystem, чтобы обработать данные о субматрице, когда соседние подматрицы перекрывают друг друга. Чтобы продемонстрировать этот подход обработки данных, пример реализует обнаружение ребра изображений с линейными фильтрами с помощью Для Каждого блока Subsystem. У каждого Для Каждого блока Subsystem есть блок For Each, который должен быть сконфигурирован для разделения и конкатенации.
Откройте модель slexForEachOverlapExample
в качестве примера. Эта модель использует 3х3 ядро, чтобы реализовать приложение обнаружения ребра для данного двухмерного изображения. Из-за двумерного входного сигнала этот пример использует, вкладывается Для Каждого подсистемы.
Внешнее Для Каждой подсистемы делит сигнал по первому измерению. Внешний блок For Each сконфигурирован, чтобы разделить входной сигнал по измерению 1. Блок задает ширину раздела 3 и смещение раздела-2. (Смещение раздела-2 указывает, что каждый срез перекрывает свои соседние срезы 2 элементами.)
Внутреннее Для Каждой подсистемы делит сигнал вдоль второго измерения. Внутренний блок For Each имеет те же настройки как внешний блок For Each, за исключением того, что внутренний блок собирается разделить и конкатенировать сигналы по измерению 2.
Порядок разделения произволен. Чтобы гарантировать правильность результата, порядок конкатенации выходных параметров выполняет приказ разделения.
Для простоты этот пример не обрабатывает дополнение данных. В результате размер выходного изображения немного меньше, чем то из входного изображения.
Результат сравнения между оригинальным изображением и обработанным изображением показывают ниже.
Рисунок 1: Оригинальное изображение по сравнению с обработанным изображением