nlfilter

Общие операции скользящего окружения

Синтаксис

B = nlfilter(A,[m n],fun)
B = nlfilter(A,'indexed',___)

Описание

пример

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

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

Примечание

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

Примеры

свернуть все

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

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

A = imread('cameraman.tif'); 

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

A = im2double(A);

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

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

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

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

Отобразите оригинальное изображение и отфильтрованное изображение, бок о бок.

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

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

свернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Размер блока, заданный как вектор с 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 m-by-n блокируются в ребрах при необходимости.

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

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

свернуть все

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

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