Как я могу кодировать, используя структурирующий элемент Dilation 5 * 5 в Aforge.net?

Фреймворк AForge.NET предоставляет набор фильтров из математической морфологии. Все фильтры могут применяться как с использованием элемента структурирования по умолчанию, так и с использованием заданного пользователем элемента структурирования.

В Dilation фильтр присваивает максимальное значение окружающих пикселей каждому пикселю результирующего изображения. Окружающие пиксели, которые необходимо обрабатывать, задаются элементом структурирования: 1 - обрабатывать соседа, -1 - пропускать его.

Фильтр особенно полезен для обработки бинарных изображений, где он позволяет увеличивать отдельные объекты или объединять объекты.

Для обработки изображения со структурным элементом 3x3 доступны различные оптимизации, такие как Dilatation3x3 и BinaryDilatation3x3.

Фильтр принимает для обработки изображения в градациях серого с разрешением 8 и 16 бит и цветные изображения с разрешением 24 и 48 бит на пиксель.

Это код структурного элемента 3*3:

Dilatation filter = new Dilatation( );
filter.Apply( image );

Но мне нужно реализовать этот код, используя элемент структурирования 5*5. Как я могу изменить этот код на элемент структурирования 5 * 5?


person Roshan Gunarathna    schedule 27.04.2016    source источник


Ответы (2)


Я не знаю фреймворка AForge.NET, но эрозия/расширение размерами 5х5 равна двум эрозиям/расширениям размерами 3х3. Это то, что делается в библиотеках, поддерживающих шестиугольные элементы структурирования.

Итак, в вашем случае вы просто дважды применяете операцию. Согласно вашему коду, это будет:

Dilatation filter = new Dilatation( );
filter.Apply( image );
filter.Apply( image );
person FiReTiTi    schedule 27.04.2016

Вы можете создать фильтр Dilatation и передать ему пользовательский структурирующий элемент, как указано в спецификации здесь. Нужный элемент структурирования представляет собой двумерный массив Int со следующей структурой:

new short[5,5]{ 
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
{ 1,1,1,1,1 },
}
person Jared Windover-Kroes    schedule 27.04.2016