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

El rango de imagen local

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. 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

Leer una imagen en el espacio de trabajo.

I = imread('liftingbody.png'); 

Filtre 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); 

Visualice la imagen original y la imagen filtrada una al lado de la otra.

imshowpair(I,J,'montage')

Leer 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);

Visualice 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 mostrarla.

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

Define 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 enfatiza los bordes verticales.

nhood = [1 1 1];

Realice la operación de filtrado de rango utilizando esta vecindad. Para la comparación, también realice el filtrado de rango utilizando la vecindad 3 por 3 predeterminada. 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 utilizando la vecindad especificada 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 filtrará, especificada como una matriz numérica real, no dispersa, de cualquier dimensión.

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

Vecindad, especificada 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, usa la vecindad. determina el elemento central de la vecindad por.rangefilttrue(3)rangefiltfloor((size(NHOOD) + 1)/2)

Para especificar los vecindarios 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 del 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, el mismo tamaño y clase que la imagen de entrada, excepto para los tipos de datos enteros firmados.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 es, entonces la clase de is.Iint8Juint8

Algoritmos

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

Introducido antes de R2006a