Main Content

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.

ordfilt2

Filtrado de orden estadístico 2D

Descripción

ejemplo

B = ordfilt2(A,order,domain) sustituye cada elemento de A por el order-ésimo elemento en el conjunto ordenado de vecinos especificado por los elementos distintos de cero en domain.

B = ordfilt2(A,order,domain,S) filtra A, donde ordfilt2 utiliza los valores de S correspondientes a los valores distintos de cero de domain como desplazamientos aditivos. Puede utilizar esta sintaxis para implementar operaciones morfológicas en escala de grises, incluyendo la dilatación y la erosión en escala de grises.

B = ordfilt2(___,padopt) filtra A, donde padopt especifica la forma en la que ordfilt2 rellena los límites de la matriz.

Ejemplos

contraer todo

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

A = imread('snowflakes.png');
figure
imshow(A)

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

Filtre la imagen y muestre el resultado.

B = ordfilt2(A,25,true(5));
figure
imshow(B)

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

Argumentos de entrada

contraer todo

Datos a filtrar, especificados como matriz lógica 2D o matriz numérica 2D.

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

Elemento para reemplazar el píxel de destino, especificado como un entero escalar real.

Tipos de datos: double

Entorno, especificado como una matriz numérica o lógica que contiene valores 1 y 0. domain es equivalente al elemento estructurante utilizado para las operaciones de imagen binaria. Los elementos con valor 1 definen el entorno para la operación de filtrado. La tabla ofrece ejemplos de algunos filtros comunes.

Tipo de operación de filtradoCódigo MATLABEntornoDatos de la imagen de muestra, indicando el elemento seleccionado
Filtro de medianaB = ordfilt2(A,5,ones(3,3))
Filtro mínimoB = ordfilt2(A,1,ones(3,3))
Filtro máximoB = ordfilt2(A,9,ones(3,3))
Un mínimo de vecinos al norte, este, sur y oesteB = ordfilt2(A,1,[0 1 0; 1 0 1; 0 1 0])

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

Desplazamientos aditivos, especificados como matriz numérica del mismo tamaño que domain.

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

Opción de relleno, especificada como uno de los siguientes valores:

OpciónDescripción
'zeros'Límites del arreglo de relleno con valores 0.
'symmetric'

Arreglo de relleno con reflejos de espejo de sí mismo.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Datos filtrados, devueltos como una matriz lógica 2D o matriz numérica 2D de la misma clase que los datos de entrada A.

Sugerencias

  • Cuando se trabaja con matrices de dominios grandes que no contienen ningún elemento de valor cero, ordfilt2 puede lograr un mayor rendimiento si A está en un formato de datos enteros (uint8, int8, uint16, int16). La ganancia de velocidad es mayor para uint8 e int8 que para los tipos de datos de 16 bits. Para los formatos de datos de 8 bits, la matriz de dominios debe contener siete o más filas. Para los formatos de datos de 16 bits, la matriz de dominios debe contener tres o más filas y 520 o más elementos.

Referencias

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992.

[2] Huang, T.S., G.J.Yang, and G.Y.Tang. "A fast two-dimensional median filtering algorithm.", IEEE transactions on Acoustics, Speech and Signal Processing, Vol ASSP 27, No. 1, February 1979

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también