imgaussfilt3

3-D Гауссова фильтрация 3-D изображений

Синтаксис

B = imgaussfilt3(A)
B = imgaussfilt3(A,sigma)
B = imgaussfilt3(___,Name,Value)

Описание

пример

B = imgaussfilt3(A) фильтрует 3-D изображение A с 3-D Гауссовым ядром сглаживания со стандартным отклонением 0,5 и возвращает отфильтрованное изображение в B.

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

B = imgaussfilt3(A,sigma) фильтрует 3-D изображение A с 3-D Гауссовым ядром сглаживания со стандартным отклонением, заданным sigma.

B = imgaussfilt3(___,Name,Value) аргументы пары "имя-значение" использования, чтобы управлять аспектами фильтрации.

Примеры

свернуть все

Загрузите данные MRI и отобразите их.

vol = load('mri');
figure
montage(vol.D)
title('Original image volume')

Сглаживайте изображение с 3-D Гауссовым фильтром.

siz = vol.siz;
vol = squeeze(vol.D);   
sigma = 2;
 
volSmooth = imgaussfilt3(vol, sigma);
  
figure
montage(reshape(volSmooth,siz(1),siz(2),1,siz(3)))
title('Gaussian filtered image volume')

Этот пример показывает, как выполнить 3-D Гауссову операцию сглаживания на графическом процессоре.

Загрузите данные MRI, которые будут отфильтрованы.

vol = load('mri');
figure, montage(vol.D), title('Original image volume')

Создайте gpuArray, содержащий данные об объеме, и выполните Гауссово сглаживание.

siz = vol.siz;
vol = gpuArray(squeeze(vol.D));   
sigma = 2; 

volSmooth = imgaussfilt3(vol, sigma);

Соберите сглаживавшие данные от графического процессора (использующий функцию gather) и отобразите все результаты для сравнения.

figure, montage(reshape(gather(volSmooth),siz(1),siz(2),1,siz(3)))
title('Gaussian filtered image volume')

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

свернуть все

Отобразите, чтобы быть отфильтрованными, заданными как 3-D числовой массив.

Чтобы выполнить фильтрацию с помощью графического процессора, задайте A как gpuArray, который содержит 3-D числовой массив.

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

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

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: volSmooth = imgaussfilt3(vol,sigma,'padding','circular');

Размер Гауссова фильтра, заданного как скалярный или вектор с 3 элементами положительных, нечетных, целых чисел. Если вы задаете скаляр, то imgaussfilt3 использует кубический фильтр. Размером фильтра по умолчанию является 2*ceil(2*sigma)+1.

Пример: volSmooth = imgaussfilt3(vol,sigma,'FilterSize',5);

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

Отобразите дополнение, заданное как одно из следующих.

ЗначениеОписание
числовой скалярЗаполните изображение элементами постоянного значения.
'circular'

Заполните круговым повторением элементов в размерности.

'replicate'

Клавиатура путем повторения элементов границы массива.

'symmetric'

Заполните изображение зеркальными отражениями себя.

Пример: volSmooth = imgaussfilt3(vol,sigma,'padding','circular');

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

Область, в которой можно выполнить фильтрацию, заданную как одно из следующих значений.

Область фильтра Описание
'auto'Выполните свертку в пространственном или частотном диапазоне, на основе внутренней эвристики.
'frequency'Выполните свертку в частотном диапазоне.
'spatial'Выполните свертку в пространственной области.

Пример: volSmooth = imgaussfilt3(vol,sigma,'FilterDomain','frequency');

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

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

свернуть все

Фильтрованное изображение, возвращенное как числовой массив того же класса и размера как входное изображение.

Если изображение отфильтровано с помощью графического процессора, то B возвращен как gpuArray, содержащий числовой массив.

Советы

  • Если изображение, A содержит Inf s или NaN s, то поведение imgaussfilt3 для фильтрации частотного диапазона не определено. Это может произойти, если вы устанавливаете параметр 'FilterDomain' на 'frequency' или если вы устанавливаете его на 'auto', и imgaussfilt3 использует фильтрацию частотного диапазона. Чтобы ограничить распространение Inf s и NaN s в выводе способом, подобным imfilter, рассмотрите установку параметра 'FilterDomain' на 'spatial'.

  • Если вы устанавливаете параметр 'FilterDomain' на 'auto', то imgaussfilt3 использует внутреннюю эвристику, чтобы определить или пространственный, или фильтрация частотного диапазона быстрее. Эта эвристика машинно-зависима и может отличаться для различных настроек. Для оптимальной производительности попробуйте обе опции, 'spatial' и 'frequency', чтобы определить лучшую область фильтрации для вашего изображения и размера ядра.

  • Если вы не задаете параметр 'Padding', то imgaussfilt3 использует 'replicate', дополняющий по умолчанию, который отличается от значения по умолчанию, используемого imfilter.

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

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

|

Представленный в R2015a