Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

rangefilt

Rango local de imagen

Descripción

ejemplo

J = rangefilt(I) devuelve la matriz, donde cada píxel de salida contiene el valor de rango (valor máximo - valor mínimo) de la vecindad 3 por 3 alrededor del píxel correspondiente en la imagen de entrada.JI

ejemplo

J = rangefilt(I,nhood) realiza el filtrado de rango de la imagen de entrada donde se especifica la vecindad en . es una matriz multidimensional de ceros y unos donde los elementos distintos de cero especifican la vecindad para la operación de filtrado de rango.Inhoodnhood

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo.

I = imread('liftingbody.png'); 

Filtra la imagen. La función devuelve una matriz donde cada píxel de salida contiene el valor de rango (valor máximo - valor mínimo) de la vecindad 3 por 3 alrededor del píxel correspondiente en la imagen de entrada.rangefilt

J = rangefilt(I); 

Muestre la imagen original y la imagen filtrada en paralelo.

imshowpair(I,J,'montage')

Lea la imagen en el espacio de trabajo.

RGB = imread('autumn.tif'); 

Convierta la imagen RGB en una imagen L*a*b*.

LAB = rgb2lab(RGB);

Realice el filtrado de rango en la imagen LAB.

rLAB = rangefilt(LAB);

Muestre las imágenes.

imshow(RGB);

figure, imshow(rLAB(:,:,1),[]);

figure, imshow(rLAB(:,:,2),[]);

figure, imshow(rLAB(:,:,3),[]);

Lea una imagen en el espacio de trabajo y muéstrala.

I = imread('circuit.tif'); imshow(I);

Defina una vecindad. En este ejemplo, la vecindad devuelve un valor grande cuando hay una gran diferencia entre los valores de píxel a la izquierda y a la derecha de un píxel de entrada. El filtrado no tiene en cuenta los píxeles anteriores y sopla el píxel de entrada. Por lo tanto, este vecindario hace hincapié en los bordes verticales.

nhood = [1 1 1];

Realice la operación de filtrado de rango con esta vecindad. Para la comparación, también realice el filtrado de rango utilizando la vecindad predeterminada de 3 por 3. Compare los resultados.

J = rangefilt(I,nhood); K = rangefilt(I); figure imshowpair(J,K,'montage'); title('Range filtering using specified neighborhood (left) and default neighborhood (right)');

El resultado mediante la vecindad especificada hace hincapié en los bordes verticales, como se esperaba. En comparación, el filtro predeterminado no es sensible a la direccionalidad del borde.

Argumentos de entrada

contraer todo

Imagen que se va a filtrar, especificada como una matriz numérica real, no dispersa, de cualquier dimensión.

Tipos de datos: double | uint8 | uint16 | uint32 | logical

Vecindario, especificado como una matriz multidimensional, lógica o numérica que contiene ceros y unos. tamaño debe ser impar en cada dimensión.NHOOD's

De forma predeterminada, utiliza la vecindad . determina el elemento central del barrio por .rangefilttrue(3)rangefiltfloor((size(NHOOD) + 1)/2)

Para especificar vecindades de otras formas, como un disco, utilice la función para crear un objeto de elemento de estructuración de la forma deseada.strel A continuación, extraiga la vecindad de la propiedad del objeto de elemento de estructuración.neighborhood

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

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como una matriz numérica, del mismo tamaño y clase que la imagen de entrada, excepto para los tipos de datos enteros con signo.I La clase de salida para los tipos de datos firmados es el tipo de datos entero sin signo correspondiente. Por ejemplo, si la clase de es , entonces la clase de es .Iint8Juint8

Algoritmos

utiliza las funciones morfológicas y para determinar los valores máximo y mínimo en la vecindad especificada.rangefiltimdilateimerode Por lo tanto, utiliza el comportamiento de relleno de estas funciones morfológicas.rangefilt

Introducido antes de R2006a