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.

adapthisteq

Ecualización de histograma adaptativo limitada por contraste (CLAHE)

Descripción

ejemplo

J = adapthisteq(I) mejora el contraste de la imagen en escala de grises mediante la transformación de los valores mediante la ecualización de histograma adaptativo por contraste limitado (CLAHE).I[1]

J = adapthisteq(I,Name,Value) especifica pares nombre-valor adicionales. Los nombres de los parámetros se pueden abreviar y el caso no importa.

Ejemplos

contraer todo

Aplique CLAHE a una imagen y muestre los resultados.

I = imread('tire.tif'); J = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh'); imshowpair(I,J,'montage'); title('Original Image (left) and Contrast Enhanced Image (right)')

Lea la imagen de color indexada en el espacio de trabajo.

[X, MAP] = imread('shadow.tif');

Convierta la imagen indexada en una imagen de color verdadero (RGB) y, a continuación, convierta la imagen RGB en el espacio de color L*a*b*.

RGB = ind2rgb(X,MAP); LAB = rgb2lab(RGB);

Escalar los valores al rango esperado por la función, [0 1].adapthisteq

L = LAB(:,:,1)/100;

Realice CLAHE en el canal L. Escale el resultado para volver al rango utilizado por el espacio de color L*a*b*.

L = adapthisteq(L,'NumTiles',[8 8],'ClipLimit',0.005); LAB(:,:,1) = L*100;

Convierta la imagen resultante de nuevo en el espacio de color RGB.

J = lab2rgb(LAB);

Muestre la imagen original y la imagen procesada.

figure imshowpair(RGB,J,'montage') title('Original (left) and Contrast Enhanced (right) Image')

Las sombras de la imagen mejorada se ven más oscuras y los resaltados se ven más brillantes. Se mejora el contraste general.

Argumentos de entrada

contraer todo

Imagen de intensidad de entrada, especificada como una matriz 2D numérica.

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

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: divide la imagen en 8 filas y 16 columnas de mosaicos.'NumTiles',[8 16]

Número de regiones contextuales rectangulares (teselas) en las que divide la imagen, especificada como un vector de 2 elementos de enteros positivos.adapthisteq Con la imagen original dividida en filas y columnas de mosaicos, el valor de es .MN'NumTiles'[M N] Ambos y debe ser al menos .MN2 El número total de teselas es igual a .M*N El número óptimo de teselas depende del tipo de la imagen de entrada y se determina mejor mediante la experimentación.

Tipos de datos: double

Límite de mejora de contraste, especificado como un escalar real en el rango [0, 1]. Los límites más altos dan como resultado más contraste.

es un factor de contraste que evita la sobresaturación de la imagen específicamente en áreas homogéneas.'ClipLimit' Estas áreas se caracterizan por un pico alto en el histograma del mosaico de la imagen en particular debido a que muchos píxeles caen dentro del mismo rango de nivel de gris. Sin el límite de clip, la técnica de ecualización de histograma adaptable podría producir resultados que, en algunos casos, son peores que la imagen original.

Tipos de datos: double

Número de bins de histograma utilizados para crear una transformación que mejora el contraste, especificada como un escalar entero positivo. Los valores más altos dan como resultado un mayor rango dinámico a costa de una velocidad de procesamiento más lenta.

Tipos de datos: double

Rango de los datos de la imagen de salida, especificado como uno de los siguientes valores:

ValorDescripción
'full'Utilice el rango completo de la clase de salida (por ejemplo, [0 255] para ).uint8
'original'Limite el rango a .[min(I(:)) max(I(:))]

Tipos de datos: char | string

Forma de histograma deseada, especificada como uno de los siguientes valores:

ValorDescripción
'uniform'Cree un histograma plano.
'rayleigh'Cree un histograma en forma de campana.
'exponential'Cree un histograma curvo.

especifica la distribución que utiliza como base para crear la función de transformación de contraste.'Distribution'adapthisteq La distribución que seleccione debe depender del tipo de imagen de entrada. Por ejemplo, las imágenes submarinas parecen parecer más naturales cuando se utiliza la distribución de Rayleigh.

Tipos de datos: char | string

Parámetro de distribución, especificado como un escalar real no negativo. sólo se utiliza cuando se establece en o .'Alpha''Distribution''rayleigh''exponential'

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen de intensidad de salida, devuelta como una matriz 2D de la misma clase que la imagen de entrada.I

Algoritmos

CLAHE funciona en regiones pequeñas de la imagen, llamadas , en lugar de toda la imagen. calcula la función de transformación de contraste para cada mosaico individualmente.Azulejosadapthisteq El contraste de cada mosaico se mejora, de modo que el histograma de la región de salida coincide aproximadamente con el histograma especificado por el valor.'Distribution' Las teselas vecinas se combinan mediante interpolación bilineal para eliminar los límites inducidos artificialmente. El contraste, especialmente en áreas homogéneas, se puede limitar para evitar amplificar cualquier ruido que pueda estar presente en la imagen.

Referencias

[1] Zuiderveld, Karel. “Contrast Limited Adaptive Histograph Equalization.” Graphic Gems IV. San Diego: Academic Press Professional, 1994. 474–485.

Consulte también

Introducido antes de R2006a