fspecial3

Создайте предопределенный 3-D фильтр

Синтаксис

h = fspecial3(type)
h = fspecial3('average',hsize)
h = fspecial3('ellipsoid',semiaxes)
h = fspecial3('gaussian',hsize,sigma)
h = fspecial3('laplacian',gamma1,gamma2)
h = fspecial3('log',hsize,sigma)
h = fspecial3('prewitt',direction)
h = fspecial3('sobel',direction)

Описание

h = fspecial3(type) создает 3D фильтр h заданного type. Некоторые типы фильтра имеют дополнительные дополнительные параметры, показанные в следующих синтаксисах. fspecial3 возвращает h как ядро корреляции, которое является соответствующей формой, чтобы использовать с imfilter.

h = fspecial3('average',hsize) возвращается усреднение фильтруют h размера hsize. Не рекомендуемый. Используйте imboxfilt3 вместо этого.

пример

h = fspecial3('ellipsoid',semiaxes) возвращает эллипсоидальный фильтр усреднения с длиной основных полуосей, заданных semiaxes. Фильтр h возвращен в массиве размера 2*ceil(semiaxes)+1.

h = fspecial3('gaussian',hsize,sigma) возвращает Гауссов lowpass фильтр размера hsize со стандартным отклонением sigma. Не рекомендуемый. Используйте imgaussfilt3 вместо этого.

h = fspecial3('laplacian',gamma1,gamma2) возвращает 3 3х3 фильтром, аппроксимирующим форму 3D Лапласового оператора. gamma1 и gamma2 управляют формой Лапласиана [1][2].

h = fspecial3('log',hsize,sigma) возвращает Лапласиан Гауссова фильтра размера hsize со стандартным отклонением sigma.

h = fspecial3('prewitt',direction) возвращает 3 3х3 фильтром, который подчеркивает градиенты в заданном направлении.

пример

h = fspecial3('sobel',direction) возвращает 3 3х3 фильтром, который подчеркивает градиенты в заданном направлении и сглаживает другие направления [3].

Примеры

свернуть все

Загрузите 3-D полутоновый объем MRI. Отобразите плоскости объема.

load mristack;
montage(mristack,'BackgroundColor','w')

Создайте 3-D эллипсоидальный фильтр. Задайте длину полуоси 7 пикселей в y (строки) и x (столбцы) направления и длина полуоси 3 пикселей в z (плоскости) направление.

H = fspecial3('ellipsoid',[7 7 3]);

Сглаживайте объем с фильтром.

volSmooth = imfilter(mristack,H,'replicate');

Отобразите плоскости сглаживавшего объема.

montage(volSmooth,'BackgroundColor','w')

Загрузите объем MRI. Этот объем хранится как 4-D массив с одноэлементной размерностью. Создайте 3-D полутоновый объем при помощи функции squeeze, чтобы удалить одноэлементную размерность.

load mri;
V = squeeze(D);

Отобразите плоскости объема.

montage(D,'BackgroundColor','w')

Создайте 3-D фильтр Sobel, который обнаруживает горизонтальные ребра в объеме. Горизонтальные ребра появляются, где существует большая величина градиента в направлении Y, поэтому задайте направление фильтра Sobel как 'Y'. Фильтр Sobel сглаживает градиент в x и z направлениях.

H = fspecial3('sobel','Y');

Отфильтруйте объем с 3-D фильтром Sobel.

edgesHor = imfilter(V,H,'replicate');

Отобразите плоскости отфильтрованного объема.

montage(edgesHor)

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

свернуть все

Тип фильтра, заданного как одно из следующих значений:

Значение

Описание

'average'

Усреднение фильтра. Не рекомендуемый. Используйте imboxfilt3 вместо этого.

'ellipsoid'

Эллипсоидальный фильтр усреднения

'gaussian'

Гауссов фильтр lowpass. Не рекомендуемый. Используйте imgaussfilt3 вместо этого.

'laplacian'

Аппроксимирует 3D Лапласов оператор

'log'

Лапласиан Гауссова фильтра

'prewitt'

Фильтр подчеркивания ребра Prewitt

'sobel'

Фильтр подчеркивания ребра Sobel

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

Размер фильтра, заданного как положительный целочисленный или вектор с 3 элементами положительных целых чисел. Используйте вектор, чтобы задать количество строк, столбцов и плоскостей в h. Используйте скаляр, чтобы задать длину стороны куба.

Поскольку 'gaussian' и 'log' фильтруют типы, если вы задаете hsize как [], затем fspecial3 создает фильтр с размером по умолчанию 2*ceil(2*sigma)+1.

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

Длина полуосей эллипсоидального фильтра, заданного как положительное число или вектор с 3 элементами положительных чисел. Используйте вектор, чтобы задать длину трех основных полуосей в строках, столбцах и плоскостях. Эти значения соответствуют длине в Декартовом y, x и направлениях z, соответственно. Используйте скаляр, чтобы задать радиус сферы.

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

Стандартное отклонение Гауссова фильтра, заданного как положительное число или вектор с 3 элементами положительных чисел. Если вы задаете скаляр, то fspecial3 создает кубическое Гауссово ядро.

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

Форма Лапласиана, заданного как скаляр в области значений [0 1]. Сумма gamma1 и gamma2 не должна превышать 1.

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

Направление градиентов для фильтрации Prewitt и Sobel, заданной как 'X', 'Y' или 'Z'.

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

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

свернуть все

Ядро корреляции, возвращенное как числовой массив.

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

Ссылки

[1] Lindeberg, T., теория пробела шкалы в компьютерном зрении. Бостон, MA: Kluwer академические издатели, 1994.

[2] Управляемая геометрией Диффузия в Компьютерном зрении. Отредактированный Б. М. тер Хааром Ромени. Бостон, MA: Kluwer Академические Издатели, 1994.

[3] Энгель, K., М. Хэдвиджер, Дж. М. Нисс, К. Резк-Салама и Д. Вейскопф. Графика Объема в реальном времени. Веллесли, MA: K Peters, Ltd., 2006, стр 112–114.

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

Введенный в R2018b