Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

rangefilt

Rango local de una imagen

Descripción

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

ejemplo

J = rangefilt(I,nhood) devuelve el rango local de la imagen I utilizando el entorno especificado, nhood.

ejemplo

Ejemplos

contraer todo

Lea una imagen en el área de trabajo.

I = imread('liftingbody.png'); 

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

J = rangefilt(I);

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

imshowpair(I,J,'montage')

Figure contains an axes object. The hidden axes object contains an object of type image.

Este ejemplo muestra cómo detectar regiones de textura en una imagen utilizando las funciones de filtro de textura.

Lea una imagen en el área de trabajo y muéstrela. En la figura, el fondo es suave: hay muy poca variación en los valores de niveles de gris. En primer plano, los contornos de la superficie de las monedas muestran más textura. En esta imagen, los píxeles del primer plano tienen más variabilidad y, por lo tanto, valores de rango más altos.

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

Figure contains an axes object. The hidden axes object contains an object of type image.

Filtre la imagen con la función rangefilt y muestre los resultados. El filtrado de rango hace visibles los bordes y los contornos de las monedas.

K = rangefilt(I);
figure
imshow(K)

Figure contains an axes object. The hidden axes object contains an object of type image.

Lea una imagen en el área de trabajo y muéstrela.

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

Figure contains an axes object. The hidden axes object contains an object of type image.

Defina un entorno. En este ejemplo, el entorno 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 considera los píxeles superiores y sobrepasa el píxel de entrada. De esta manera, este entorno enfatiza los bordes verticales.

nhood = [1 1 1];

Realice la operación de filtrado de rango utilizando este entorno. A modo de comparación, realice también un filtrado de rango utilizando el entorno predeterminado 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)');

Figure contains an axes object. The hidden axes object with title Range filtering using specified neighborhood (left) and default neighborhood (right) contains an object of type image.

El resultado del uso del entorno especificado enfatiza 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 desea filtrar, especificada como arreglo numérico de cualquier dimensión.

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

Entorno, especificado como un arreglo lógico o numérico que contiene ceros y unos. El tamaño de nhood debe ser impar en cada dimensión. rangefilt determina el elemento central del entorno mediante floor((size(nhood) + 1)/2).

Para especificar entornos de otras formas, como un disco, cree un objeto de elemento estructurante de la forma deseada con la función strel. Después, extraiga el entorno de la propiedad neighborhood del objeto de elemento estructurante.

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

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como arreglo numérico del mismo tamaño que la imagen de entrada I.

Si I es del tipo de datos double, single o un tipo de datos sin signo como uint8, entonces el tipo de datos de J es igual al tipo de datos de I. Si I es int8, int16 o int32, entonces el tipo de datos de J es uint8, uint16 o uint32, respectivamente.

Tipos de datos: single | doubl | uint8 | uint16 | uint32

Algoritmos

La siguiente figura muestra cómo se ha calculado el valor del elemento B(2,4) a partir de A(2,4). De forma predeterminada, la función rangefilt utiliza un entorno de 3 por 3, pero puede especificar entornos de diferentes formas y tamaños.

Determinar los valores de los píxeles en la imagen de salida filtrada por rangos

rangefilt utiliza las funciones morfológicas imdilate e imerode para determinar los valores máximos y mínimos en el entorno especificado. En consecuencia, rangefilt utiliza el comportamiento de relleno de estas funciones morfológicas.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo