Существенной частью операций морфологического расширения и эрозии является элемент структурирования, используемый для зондирования входа изображения. Элемент структурирования является матрицей, которая идентифицирует пиксель в обрабатываемом изображении и определяет окрестность, используемую при обработке каждого пикселя. Обычно вы выбираете элемент структурирования того же размера и формы, что и объекты, которые вы хотите обработать на входном изображении. Для примера, чтобы найти линии в изображении, создайте линейный элемент структурирования.
Существует два типа элементов структурирования: flat и nonflat. Плоский элемент структурирования является двоичным соседством, либо 2-D, либо многомерным, в котором истинные пиксели включены в морфологические расчеты, а ложные пиксели не имеют значения. Центральный пиксель элемента структурирования, называемый источником, идентифицирует пиксель в обрабатываемом изображении. Используйте strel
функция для создания плоского элемента структурирования. Можно использовать плоские элементы структурирования с двоичными и полутоновыми изображениями. Следующий рисунок иллюстрирует плоский структурный элемент.
Нефлятный элемент структурирования является матрицей типа double
который идентифицирует пиксель в обрабатываемом изображении и определяет окрестность, используемую при обработке этого пикселя. Нефлятный структурный элемент содержит конечные значения, используемые в качестве аддитивных смещений в морфологических расчетах. Центральный пиксель матрицы, называемый origin, идентифицирует пиксель в обрабатываемом изображении. Пиксели по соседству со значением -Inf
не используются в расчетах. Используйте offsetstrel
функция для создания неявнополюсного структурного элемента. Можно использовать нефлятельные элементы структурирования только с полутоновыми изображениями.
Морфологические функции используют этот код, чтобы получить координаты источника элементов структурирования любого размера и размерности:
origin = floor((size(nhood)+1)/2)
где nhood
- окрестность, определяющая элемент структурирования. Чтобы увидеть окрестность плоского элемента структурирования, просмотрите Neighborhood
свойство strel
объект. Чтобы увидеть окрестность неявнополюсного элемента структурирования, просмотрите Offset
свойство offsetstrel
объект.
Например, нижеследующее иллюстрирует источник плоского, ромбовидного структурного элемента.
Для повышения эффективности strel
и offsetstrel
функции могут разбивать элементы структурирования на меньшие части, метод, известный как разложение элементов структурирования.
Для примера расширение с помощью элемента структурирования 11 на 11 квадратов может быть осуществлено путем расширения сначала с помощью элемента структурирования 1 на 11, а затем с помощью элемента структурирования 11 на 1. Это приводит к теоретическому улучшению скорости коэффициента 5,5, хотя на практике фактическое улучшение скорости несколько меньше.
Декомпозиции элементов структурирования, используемые для 'disk'
и 'ball'
формы являются приближениями; все другие разложения точны. Разложение не используется с произвольным элементом структурирования, если только это не плоский элемент структурирования, матрица окрестностей которого все 1.
Чтобы увидеть последовательность элементов структурирования, используемых в разложении, используйте decompose
способ. Оба strel
объекты и offsetstrel
объекты поддерживают методы разложения. The decompose
метод возвращает массив элементов структурирования, которые образуют разложение. Например, вот элементы структурирования, созданные при разложении алмазообразного элемента структурирования.
SE = strel('diamond',4)
SE = strel is a diamond shaped structuring element with properties: Neighborhood: [9x9 logical] Dimensionality: 2
Вызовите метод разложения. Метод возвращает массив элементов структурирования.
decompose(SE)
ans = 3x1 strel array with properties: Neighborhood Dimensionality