Main Content

nlfilter

Operaciones de entorno deslizante general

Descripción

ejemplo

B = nlfilter(A,[m n],fun) aplica la función fun a cada bloque deslizante de m por n de la imagen en escala de grises A.

B = nlfilter(A,'indexed',___) procesa A como una imagen indexada, y la rellena con valores 0 si la clase de A es uint8, uint16 o logical y de lo contrario, la rellena con valores 1.

Nota

nlfilter puede tardar mucho tiempo en procesar imágenes de gran tamaño. En algunos casos, la función colfilt puede realizar la misma operación mucho más rápido.

Ejemplos

contraer todo

Este ejemplo muestra cómo aplicar un filtro de mediana a una imagen usando nlfilter. Este ejemplo produce el mismo resultado que llamar a medfilt2 con un entorno de 3 por 3.

Lea una imagen en el espacio de trabajo.

A = imread('cameraman.tif'); 

Convierta la imagen a double.

A = im2double(A);

Cree la función que desea aplicar a la imagen: un filtro de mediana.

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

Aplique el filtro a la imagen.

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

Muestre la imagen original y la imagen filtrada, una al lado de la otra.

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

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

Argumentos de entrada

contraer todo

Imagen que se desea filtrar, especificada como arreglo numérico de cualquier clase admitida por fun. Cuando A es de escala de grises, puede ser cualquier tipo numérico o logical. Cuando A está indexada, puede ser logical, uint8, uint16, single o double.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Tamaño del bloque, especificado como vector de 2 elementos de enteros positivos. m es el número de filas y n es el número de columnas en el bloque.

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

Tipos de datos: single | double | logical

Identificador de función, especificado como identificador. La función debe aceptar una matriz de m por n como entrada y devolver un resultado escalar.

c = fun(x)

c es el valor de salida del píxel central en el bloque de m por n x. nlfilter llama a fun para cada píxel en A. nlfilter rellena con ceros el bloque de m por n en los bordes, si es necesario.

Tipos de datos: function_handle

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como arreglo numérico. La clase de B depende de la clase de la salida de fun.

Historial de versiones

Introducido antes de R2006a