imgaussfilt

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

Синтаксис

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

Описание

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

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

пример

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

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

Примеры

свернуть все

Считайте изображение, которое будет отфильтровано.

I = imread('cameraman.tif');

Отфильтруйте изображение с Гауссовым фильтром со стандартным отклонением 2.

Iblur = imgaussfilt(I, 2);

Отобразите все результаты для сравнения.

subplot(1,2,1)
imshow(I)
title('Original Image');
subplot(1,2,2)
imshow(Iblur)
title('Gaussian filtered image, \sigma = 2')

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

Считайте изображение, которое будет отфильтровано в gpuArray.

I = gpuArray(imread('cameraman.tif'));

Выполните Гауссово сглаживание.

Iblur = imgaussfilt(I, 2);

Отобразите все результаты для сравнения.

subplot(1,2,1), imshow(I), title('Original Image');

subplot(1,2,2), imshow(Iblur)
title('Gaussian filtered image, \sigma = 2')

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

свернуть все

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

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

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

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

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

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

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

Пример: B = imgaussfilt(A,'FilterSize',3);

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

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

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

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

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

'replicate'

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

'symmetric'

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

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

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

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

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

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

свернуть все

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

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

Советы

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

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

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

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

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

| |

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