Main Content

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.

imflatfield

Corrección de campo plano de imagen 2D

Descripción

ejemplo

J = imflatfield(I,sigma) aplica la corrección de campo plano a la imagen en escala de grises o RGB.I La corrección utiliza suavizado gaussiano con una desviación estándar de aproximar el componente de sombreado de .sigmaI La imagen corregida se devuelve en .J

ejemplo

J = imflatfield(I,sigma,mask) aplica la corrección de campo plano a la imagen solo donde se encuentra la máscara binaria.Itrue Donde está la máscara, la imagen de salida contiene los valores no modificados de la imagen.falseJI

J = imflatfield(___,'FilterSize',filterSize) especifica el tamaño del filtro de suavizado gaussiano.

Ejemplos

contraer todo

Cargue una imagen en escala de grises. Esta imagen tiene una distorsión de sombreado severa en el lado izquierdo y en la esquina superior derecha.

I = imread('printedtext.png'); imshow(I) title('Distorted Image')

Realice la corrección de campo plano.

sigma = 30; Iflatfield = imflatfield(I,sigma);

Muestre el resultado. La imagen corregida tiene un brillo más uniforme.

imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])

Cargue una imagen en color que tenga viñetas u oscurecimiento de las esquinas.

I = imread('fabric.png'); imshow(I) title('Image with Vignetting')

Realice la corrección de campo plano.

sigma = 20; Iflatfield = imflatfield(I,sigma);

Muestre el resultado. La imagen corregida tiene un brillo más uniforme.

imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])

Cargue una imagen en color. Esta imagen tiene un defecto de sombreado en la esquina inferior derecha.

I = imread('hands1.jpg'); imshow(I) title('Image with Dark Corner')

Intente aplicar la corrección de campo plano a toda la imagen.

sigma = 25; Iflatfield = imflatfield(I,25); imshow(Iflatfield) title(['Flat-Field Corrected Image, \sigma = ',num2str(sigma)])

El defecto de sombreado en la esquina se corrige, pero el centro de la imagen es demasiado brillante y la mano ha cambiado de color. Para evitar este artefacto de brillo, aplique la corrección de campo plano solo al fondo de la imagen.

Cargue la máscara de esta imagen. En la máscara original, la mano segmentada es la región de interés (ROI).maskHand Invierta la máscara para que el fondo sea el ROI. Muestre la máscara, que muestra el ROI en blanco.

maskHand = imread('hands1-mask.png'); maskBackground = ~maskHand; imshow(maskBackground) title('Background Mask')

Realice la corrección de campo plano en el fondo de la imagen utilizando la máscara.maskBackground La mano no es una región de interés en la máscara, por lo tanto, la corrección de campo plano no se aplica a los píxeles de la mano.

Iflatfield2 = imflatfield(I,sigma,maskBackground);

Muestre la imagen corregida. El defecto de sombreado en la esquina se corrige, y la mano conserva su color original.

imshow(Iflatfield2) title(['Flat-Field Corrected Background, \sigma = ',num2str(sigma)])

Argumentos de entrada

contraer todo

Imagen distorsionada, especificada como una imagen en escala de grises 2D de tamaño -por- o una imagen RGB 2-D de tamaño -por- -por-3.mnmn

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

Desviación estándar del filtro de suavizado gaussiano, especificado como un número positivo o un vector de 2 elementos de números positivos. Si especifica un escalar, utilice un núcleo gaussiano cuadrado.imflatfield

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

Máscara binaria, especificada como una matriz numérica o lógica 2D de tamaño -por- .mn Para la entrada numérica, los píxeles distintos de cero se consideran ( ).1true

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

Tamaño del filtro gaussiano, especificado como un vector escalar o de 2 elementos de enteros positivos e impares. Si especifica un escalar, utilice un filtro cuadrado.imflatfield El tamaño de filtro predeterminado es 2*ceil(2*sigma)+1.

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

Argumentos de salida

contraer todo

Imagen corregida, devuelta como una imagen 2D en escala de grises o RGB del mismo tamaño y tipo de datos que la imagen de entrada, .I

Sugerencias

  • Cuando es una imagen RGB, convierte la imagen al espacio de color HSV utilizando y aplica la corrección de campo plano al canal valor HSV.Iimflatfieldrgb2hsv La imagen se convierte de nuevo al espacio de color RGB mediante .hsv2rgb

  • Si especifica un , a continuación, dilata la máscara y rellena los límites de la imagen para reducir los artefactos de borde durante la estimación de campo plano.maskimflatfield

Consulte también

|

Introducido en R2018b