imerode

Разрушьте изображение

Синтаксис

J = imerode(I,SE)
J = imerode(I,nhood)
J = imerode(___,packopt,m)
J = imerode(___,shape)

Описание

пример

J = imerode(I,SE) разрушает шкалу полутонов, двоичный файл или упакованное двухуровневое изображение I, возвращая разрушенное изображение, J. SE является объектом элемента структурирования или массивом структурирования объектов элемента, возвращенных функциями offsetstrel или strel.

Опционально можно выполнить эрозию с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

J = imerode(I,nhood) разрушает изображение I, где nhood является матрицей 0s и 1 с, которая задает окружение элемента структурирования. Функция imerode определяет центральный элемент окружения floor((size(nhood)+1)/2).

Этот синтаксис эквивалентен imerode(I,strel(nhood)).

J = imerode(___,packopt,m) задает, является ли введенное изображение I упакованным двухуровневым изображением. m задает размерность строки исходного распакованного изображения.

Этот синтаксис не поддержан на графическом процессоре.

J = imerode(___,shape) задает размер выходного изображения.

Примеры

свернуть все

Считайте двухуровневое изображение в рабочую область.

originalBW = imread('text.png');

Создайте плоский, элемент структурирования, имеющий форму строки.

se = strel('line',11,90);

Разрушьте изображение с элементом структурирования.

erodedBW = imerode(originalBW,se);

Просмотрите оригинальное изображение и разрушенное изображение.

figure
imshow(originalBW)

figure
imshow(erodedBW)

Считайте полутоновое изображение в рабочую область.

originalI = imread('cameraman.tif');

Создайте неплоский объект offsetstrel.

se = offsetstrel('ball',5,5);

Разрушьте изображение.

erodedI = imerode(originalI,se);

Отобразите оригинальное изображение и разрушенное изображение.

figure
imshow(originalI)

figure
imshow(erodedI)

Создайте бинарный объем.

load mristack
BW = mristack < 100;

Создайте кубический элемент структурирования.

se = strel('cube',3)
se = 
strel is a cube shaped structuring element with properties:

      Neighborhood: [3x3x3 logical]
    Dimensionality: 3

Разрушьте объем с кубическим элементом структурирования.

erodedBW = imerode(BW, se);

Входные параметры

свернуть все

Введите изображение, заданное как полутоновое изображение, двухуровневое изображение или упакованное двухуровневое изображение любой размерности.

Чтобы выполнить эрозию с помощью графического процессора, задайте I как gpuArray, который содержит изображение типа uint8 или logical.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Структурирование элемента, указанного как скалярный объект strel или объект offsetstrel. SE может также быть массивом объекта strel или объектов offsetstrel, в этом случае imerode выполняет несколько эрозий входного изображения, с помощью каждого элемента структурирования по очереди.

imerode выполняет полутоновую эрозию для всех изображений кроме изображений типа данных logical. В этом случае элемент структурирования должен быть плоским, и imerode выполняет бинарную эрозию.

Если вы выполняете эрозию с помощью графического процессора, то SE должен быть плоским и двумерным.

Структурирование окружения элемента, заданного как матрица 0s и 1 с.

Пример: [0 1 0; 1 1 1; 0 1 0]

Индикатор упакованного двухуровневого изображения, заданного как одно из следующих.

Значение

Описание

'notpacked'

I обработан как нормальный массив.

'ispacked'

I обработан как упакованное двухуровневое изображение, как произведено bwpack. I должен быть 2D массивом uint32, и SE должен быть плоским 2D элементом структурирования. Значением shape должен быть 'same'.

Примечание

Аргумент packopt не поддержан на графическом процессоре.

Типы данных: char | string

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

Типы данных: double

Размер выходного изображения, заданного как одно из следующих.

Значение

Описание

'same'

Выходное изображение одного размера как входное изображение. Если значением packopt является 'ispacked', то shape должен быть 'same'.

'full'

Вычислите полную эрозию.

Типы данных: char | string

Выходные аргументы

свернуть все

Разрушенное изображение, возвращенное как полутоновое изображение, двухуровневое изображение или упакованное двухуровневое изображение. Если входное изображение, I упаковывается двоичный файл, то J также упаковывается двоичный файл. J имеет тот же класс как I.

Если эрозия выполняется с помощью графического процессора, то J возвращен как gpuArray, который содержит полутоновое или двухуровневое изображение того же класса как I.

Больше о

свернуть все

Бинарная эрозия

Бинарная эрозия A B, обозначенный A ϴ B, задана как операция присвоения A ϴ B = {z | (BzA}. Другими словами, это - набор пиксельных местоположений z, где элемент структурирования, переведенный в местоположение z, накладывается только с приоритетными пикселями в A.

Для получения дополнительной информации о бинарной эрозии см. [1].

Полутоновая эрозия

В общей форме полутоновой эрозии элемент структурирования имеет высоту. Полутоновая эрозия A (x, y) B (x, y) задана как:

(A ϴ B) (x, y) = min {A (x + x ′, y + y ′) − B (x ′, y ′) | (x ′, y ′) ∊ DB},

DB является областью элемента структурирования, которым B и A (x, y) приняты, чтобы быть + ∞ вне области изображения. Чтобы создать элемент структурирования с ненулевыми значениями высоты, используйте синтаксис strel(nhood,height), где height дает значения высоты, и nhood соответствует области элемента структурирования, DB.

Обычно, полутоновая эрозия выполняется с плоским элементом структурирования (B (x, y) = 0). Полутоновая эрозия с помощью такого элемента структурирования эквивалентна локально-минимальному оператору:

(A ϴ B) (x, y) = min {A (x + x ′, y + y ′) | (x ′, y ′) ∊ DB}.

Все синтаксисы strel за исключением strel(nhood,height), strel('arbitrary',nhood,height) и strel('ball', ...) производят плоские элементы структурирования.

Алгоритмы

imerode автоматически использует в своих интересах разложение объекта элемента структурирования (если разложение существует). Кроме того, при выполнении бинарной эрозии с объектом элемента структурирования, который имеет разложение, imerode автоматически использует упаковку двухуровневого изображения, чтобы ускорить эрозию.

Эрозия с помощью битной упаковки описана в [3].

Ссылки

[1] Гонсалес, R. C. Р. Э. Вудс, и С. Л. Эддинс, цифровая обработка изображений Используя MATLAB, публикация Gatesmark, 2009.

[2] Haralick, Роберт М., и Линда Г. Шапиро, Компьютер и Видение Робота, Издание I, Аддисон-Уэсли, 1992, стр 158-205.

[3] ван ден Бумгард, R, и Р. ван Бэлен, "Методы для Быстрых Морфологических Преобразований Изображений Используя Растровые Изображения", Компьютерное зрение, Графика и Обработка изображений: Графические Модели и Обработка изображений, Издание 54, Номер 3, стр 254-258, май 1992.

Расширенные возможности

Смотрите также

Функции

Объекты

Представлено до R2006a