imdilate

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

Синтаксис

J = imdilate(I,SE)
J = imdilate(I,nhood)
J = imdilate(___,packopt)
J = imdilate(___,shape)

Описание

пример

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

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

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

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

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

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

пример

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

Примеры

свернуть все

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

BW = imread('text.png');

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

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

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

BW2 = imdilate(BW,se);
imshow(BW), title('Original')

figure, imshow(BW2), title('Dilated')

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

originalI = imread('cameraman.tif');

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

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

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

dilatedI = imdilate(originalI,se);

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

imshowpair(originalI,dilatedI,'montage')

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

se1 = strel('line',3,0)
se1 = 
strel is a line shaped structuring element with properties:

      Neighborhood: [1 1 1]
    Dimensionality: 2

se2 = strel('line',3,90)
se2 = 
strel is a line shaped structuring element with properties:

      Neighborhood: [3x1 logical]
    Dimensionality: 2

Расширьте скалярное значение 1 с обоими элементами структурирования в последовательности, с помощью опции 'full'.

composition = imdilate(1,[se1 se2],'full')
composition = 3×3

     1     1     1
     1     1     1
     1     1     1

Создайте логический 3D объем с двумя точками.

BW = false(100,100,100);
BW(25,25,25) = true;
BW(75,75,75) = true;

Расширьте 3D объем с помощью сферического элемента структурирования.

se = strel('sphere',25);
dilatedBW = imdilate(BW,se);

Визуализируйте расширенный объем изображений.

figure
isosurface(dilatedBW, 0.5)

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

свернуть все

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

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

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

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

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

Если вы выполняете расширение с помощью графического процессора, то 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

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

Значение

Описание

'same'

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

'full'

Вычислите полное расширение.

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

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

свернуть все

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

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

Больше о

свернуть все

Бинарное расширение

Бинарное расширение A B, обозначенный AB, задано как операция присвоения:

AB={z|(B^)zA},

где B^ отражение элемента структурирования B. Другими словами, это - набор пиксельных местоположений z, где отраженный элемент структурирования накладывается с приоритетными пикселями в A, когда переведено в z. Обратите внимание на то, что некоторые приложения используют определение расширения, в котором не отражается элемент структурирования.

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

Полутоновое расширение

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

(AB)(x,y)=max {A(xx,yy)+B(x,y)|(x,y)DB},

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

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

(AB)(x,y)=max {A(xx,yy)|(x,y)DB}.

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

Алгоритмы

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

Расширение с помощью битной упаковки описано в [3].

Ссылки

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

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

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

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

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

Функции

Объекты

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

Для просмотра документации необходимо авторизоваться на сайте