nlfilter

Общие операции скольжения по соседству

Описание

пример

B = nlfilter(A,[m n],fun) применяет функцию fun каждому m-by- n скользящий блок полутонового изображения A.

B = nlfilter(A,'indexed',___) процессы A как индексированное изображение, заполнение 0s, если класс A является uint8, uint16, или logical, и заполнение 1s в противном случае.

Примечание

nlfilter может занять много времени, чтобы обработать большие изображения. В некоторых случаях colfilt функция может выполнить ту же операцию намного быстрее.

Примеры

свернуть все

В этом примере показано, как применить медианный фильтр к изображению с помощью nlfilter. Этот пример приводит к тому же результату, что и вызов medfilt2 с микрорайоном 3 на 3.

Чтение изображения в рабочую область.

A = imread('cameraman.tif'); 

Преобразуйте изображение в double.

A = im2double(A);

Создайте функцию, которую вы хотите применить к изображению --a медианному фильтру.

fun = @(x) median(x(:));

Применить фильтр к изображению.

B = nlfilter(A,[3 3],fun); 

Отобразите оригинальное изображение и отфильтрованное изображение один за другим.

montage({A,B})
title('Original Image (Left) and Median Filtered Image (Right)')

Figure contains an axes. The axes with title Original Image (Left) and Median Filtered Image (Right) contains an object of type image.

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

свернуть все

Фильтруемое изображение, заданное как числовой массив любого класса, поддерживаемого fun. Когда A является полутоновым, это может быть любой числовой тип или logical. Когда A индексируется, может быть logical, uint8, uint16, single, или double.

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

Размер блока, заданный как 2-элементный вектор положительных целых чисел. m количество строк и n - количество столбцов в блоке.

Пример: B = nlfilter(A,[3 3],fun);

Типы данных: single | double | logical

Указатель на функцию, заданный как указатель. Функция должна принимать m-by- n матрица как вход и возвращает скалярный результат.

c = fun(x)

c - выход значение для центрального пикселя в m-by- n блочное x. nlfilter вызывает fun для каждого пикселя в A. nlfilter zero-pads the m-by- n блок по краям, при необходимости.

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

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

свернуть все

Отфильтрованное изображение, возвращенное в виде числового массива. Класс B зависит от класса выхода из fun.

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