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.

medfilt2

Filtrado de mediana de 2D

Descripción

ejemplo

J = medfilt2(I) realiza un filtrado de mediana de la imagen I en dos dimensiones. Cada píxel de salida contiene el valor de la mediana de un entorno de 3 por 3 alrededor del píxel correspondiente de la imagen de entrada.

J = medfilt2(I,[m n]) realiza el filtrado de mediana, en el que cada píxel de salida contiene el valor de la mediana del entorno de m por n alrededor del píxel correspondiente de la imagen de entrada.

J = medfilt2(___,padopt) controla cómo medfilt2 rellena los límites de la imagen.

Ejemplos

contraer todo

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

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

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

Añada el ruido de sal y pimienta.

J = imnoise(I,'salt & pepper',0.02);

Utilice un filtro de mediana para filtrar el ruido.

K = medfilt2(J);

Muestre un resultado al lado del otro.

imshowpair(J,K,'montage')

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

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como imagen 2D en escala de grises o binaria.

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

Tamaño del entorno, especificado como vector de 2 elementos de enteros positivos.

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

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

ValorDescripción
'zeros' (valor predeterminado)Rellena la imagen con 0.
'symmetric'Extiende simétricamente la imagen en los límites.
'indexed'Si la clase de I es double, rellena la imagen con 1; en caso contrario, la rellena con 0.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Imagen de salida, devuelta como matriz numérica de la misma clase que la imagen de entrada, I.

Sugerencias

  • El filtrado de mediana es una operación no lineal que se utiliza a menudo en el procesamiento de imágenes para reducir el ruido "sal y pimienta". Un filtro de mediana es más eficaz que la convolución cuando el objetivo es reducir el ruido y mantener los bordes al mismo tiempo. Para obtener información sobre las consideraciones de rendimiento, consulte ordfilt2.

  • Si la imagen de entrada I es de clase entera, todos los valores de salida se devuelven como enteros. Si el número de píxeles del entorno (m*n) es par, algunos de los valores de la mediana podrían no ser enteros. En esos casos, se descartan las partes fraccionarias. Los datos lógicos se tratan de forma similar. Por ejemplo, la mediana real del siguiente entorno de 2 por 2 en un arreglo uint8 es 4,5, pero medfilt2 descarta la parte fraccionaria y devuelve 4.

    1 5
    4 8
  • Si se especifica padopt como 'zeros' o 'indexed', el relleno puede desviar la mediana cerca del límite de la imagen. Los píxeles que se encuentran dentro de la mitad del ancho del entorno ([m n]/2) de los bordes pueden aparecer distorsionados.

Algoritmos

En la CPU, medfilt2 utiliza ordfilt2 para realizar el filtrado.

Referencias

[1] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 469-476.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | |