Обработка окрестностей, использующая для каждой подсистемы

В этом примере показано, как использовать блок For Each Subsystem для обработки данных подматрицы, когда соседние подматрицы перекрываются друг с другом. Чтобы продемонстрировать этот подход обработки данных, пример реализует обнаружение ребра изображения с помощью линейных фильтров, используя блок For Each Subsystem. Каждый блок For Each Subsystem имеет блок For Each, который необходимо сконфигурировать для секционирования и конкатенации.

Откройте пример модели slexForEachOverlapExample. Эта модель использует ядро 3 на 3, чтобы реализовать приложение обнаружения ребер для заданного двумерного изображения. Из-за двумерного входного сигнала в этом примере используются вложенные подсистемы For Each.

  • Внешняя подсистема For Each разделяет сигнал по первой размерности. Внешний блок For Each сконфигурирован для разбиения входного сигнала по размерности 1. Блок задает ширину раздела 3 и смещение раздела -2. (Смещение раздела -2 указывает, что каждый срез перекрывает соседние срезы на 2 элемента.)

  • Внутренняя подсистема For Each разделяет сигнал по второму измерению. Внутренний блок For Each имеет те же настройки, что и внешний блок For Each, за исключением того, что внутренний блок установлен на разбиение и конкатенацию сигналов по размерности 2.

Порядок разбиения произвольный. Чтобы гарантировать правильность результата, порядок конкатенации выходов следует порядку разбиения.

Для простоты этот пример не обрабатывает заполнение данных. В результате размер выходного изображения немного меньше, чем у входа изображения.

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

Фигура 1: Оригинальное изображение по сравнению с обработанным изображением