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

Результат сравнения исходного изображения и обработанного изображения показан ниже.


Рисунок 1: Исходное изображение по сравнению с обработанным изображением