Main Content

imnoise

Añadir ruido a una imagen

Descripción

J = imnoise(I,'gaussian') añade ruido blanco gaussiano de media cero con varianza de 0,01 a la imagen en escala de grises I.

J = imnoise(I,'gaussian',m) añade ruido blanco gaussiano de media m con varianza de 0,01.

J = imnoise(I,'gaussian',m,var_gauss) añade ruido blanco gaussiano de media m con varianza de var_gauss.

J = imnoise(I,'localvar',var_local) añade ruido blanco gaussiano de media cero con varianza local de var_local.

J = imnoise(I,'localvar',intensity_map,var_local) añade ruido blanco gaussiano de media cero. La varianza local del ruido, var_local, es una función de los valores de la intensidad de la imagen de I. La aplicación del valor de la intensidad de la imagen a la varianza del ruido se especifica mediante el vector intensity_map.

J = imnoise(I,'poisson') genera ruido de disparo a partir de los datos en lugar de añadir ruido artificial a los datos. Para obtener más información, consulte Algoritmos.

J = imnoise(I,'salt & pepper') añade ruido de sal y pimienta con una densidad de ruido por defecto de 0,05. Esto afecta, aproximadamente, al 5% de los píxeles.

ejemplo

J = imnoise(I,'salt & pepper',d) añade ruido de sal y pimienta, donde d equivale a la densidad de ruido. Esto afecta, aproximadamente, a d*numel(I) píxeles.

J = imnoise(I,'speckle') añade ruido multiplicativo utilizando la ecuación J = I+n*I, en la que n equivale al ruido aleatorio distribuido de manera uniforme de media 0 con varianza de 0,05.

J = imnoise(I,'speckle',var_speckle) añade ruido multiplicativo con varianza de var_speckle.

Ejemplos

contraer todo

Lea la imagen en escala de grises y muéstrela.

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

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

Añada a la imagen el ruido de sal y pimienta con una densidad de ruido de 0,02. Muestre el resultado.

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

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

Argumentos de entrada

contraer todo

Imagen en escala de grises, especificada como arreglo numérico de cualquier dimensionalidad.

imnoise requiere que los valores de los píxeles del tipo double y single se encuentren en el intervalo [0, 1]. Puede utilizar la función rescale para ajustar los valores de los píxeles al intervalo requerido. Si su imagen es del tipo double o single con valores que se sitúan fuera del intervalo [0,1], imnoise recorta los valores del píxel de entrada en el intervalo [0, 1] antes de añadir el ruido.

Nota

En el ruido de disparo, imnoise no es compatible con imágenes del tipo de datos int16.

Tipos de datos: single | double | int16 | uint8 | uint16

Media de ruido gaussiano, especificada como escalar numérico.

Varianza de ruido gaussiano, especificada como escalar numérico.

Varianza local de ruido gaussiano, especificada como una de las siguientes opciones:

  • Una matriz numérica del mismo tamaño que I.

  • Un vector numérico de la misma longitud que intensity_map.

Valores de intensidad que se asignan a la varianza de ruido gaussiano, especificados como vector numérico. Los valores se normalizan al intervalo [0, 1].

Puede representar la relación funcional entre la varianza del ruido var_local y la intensidad de la imagen utilizando el comando plot(intensity_map,var_local).

Densidad del ruido de sal y pimienta, especificada como escalar numérico. El ruido se aplica, aproximadamente, a d*numel(I) píxeles.

Varianza de ruido multiplicativo, especificada como escalar numérico.

Argumentos de salida

contraer todo

Imagen con ruido, devuelta como matriz numérica del mismo tipo de datos que la imagen de entrada I. En cuanto a imágenes del tipo de datos double o single, la función imnoise recorta los valores del píxel de salida en el intervalo [0, 1] después de añadir el ruido.

Algoritmos

  • Los parámetros de media y varianza de los tipos de ruido 'gaussian', 'localvar' y 'speckle' siempre se especifican como si la imagen fuera de clase double en el intervalo [0, 1]. Si la imagen de entrada es de otra clase, la función imnoise convierte la imagen a double, añade ruido según el tipo y los parámetros especificados, recorta los valores del píxel en el intervalo [0, 1] y, después, convierte la imagen con ruido en una de la misma clase que la imagen de entrada.

  • La distribución de Poisson depende del tipo de datos de la imagen de entrada I:

    • Si I es de doble precisión, los valores de los píxeles de entrada se interpretan como medias de distribuciones de Poisson escaladas por 1e12. Por ejemplo, si el valor de un píxel de entrada es 5.5e-12, se generará el píxel de salida correspondiente a partir de una distribución de Poisson con media de 5,5 y, después, se reducirá a 1e12.

    • Si I es de precisión simple, el factor de escala utilizado es 1e6.

    • Si I es uint8 o uint16, los valores del píxel de entrada se utilizan directamente sin escalar. Por ejemplo, si el valor de un píxel de una entrada uint8 es 10, se generará el píxel de salida correspondiente a partir de una distribución de Poisson con media de 10.

  • Para añadir ruido 'salt & pepper' con densidad d a una imagen, imnoise primero asigna a cada píxel un valor de probabilidad aleatorio a partir de una distribución uniforme estándar en el intervalo abierto (0, 1).

    • En píxeles con un valor de probabilidad en el intervalo (0, d/2), el valor del píxel se establece como 0. El número de píxeles que se establece como 0 es, aproximadamente, d*numel(I)/2.

    • En píxeles con un valor de probabilidad en el intervalo [d/2, d), el valor del píxel se establece como el valor máximo del tipo de datos de la imagen. El número de píxeles que se establece como el valor máximo es, aproximadamente, d*numel(I)/2.

    • En píxeles con un valor de probabilidad en el intervalo [d, 1), el valor del píxel no cambia.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

|