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 adaptable con contraste limitado (CLAHE)

Sintaxis

J = adapthisteq(I)
J = adapthisteq(I,Name,Value)

Descripción

ejemplo

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

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

Ejemplos

contraer todo

Aplicar CLAHE a una imagen y mostrar 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 TrueColor (RGB) y, a continuación, convierta la imagen RGB en el espacio de color L * a * b *.

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

Valores de escala al rango esperado por la función adapthisteq , [0 1].

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

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

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

Vuelva a convertir la imagen resultante en el espacio de color RGB.

J = lab2rgb(LAB);

Mostrar la imagen original y la imagen procesada.

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

Las sombras en la imagen mejorada lucen más oscuras y los realces lucen más brillantes. Se mejora el contraste general.

Argumentos de entrada

contraer todo

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

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

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos Name,Value . Name es el nombre del argumento y Value es el valor correspondiente. Name debe aparecer dentro de comillas simples (' '). Puede especificar varios argumentos de par de nombre y valor en cualquier orden como Name1,Value1,...,NameN,ValueN.

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

Número de regiones contextuales rectangulares (tiles) en las que adapthisteq divide la imagen, especificada como un vector de 2 elementos de enteros positivos. Con la imagen original dividida en M filas y N columnas de azulejos, el valor de 'NumTiles' es [M N]. Tanto M como N deben ser por lo menos 2. El número total de fichas es igual a M*N. El número óptimo de fichas depende del tipo de la imagen de entrada, y se determina mejor a través de la experimentación.

Tipos de datos: double

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

'ClipLimit' es un factor de contraste que impide la sobresaturación de la imagen específicamente en áreas homogéneas. Estas áreas se caracterizan por un alto pico en el histograma del azulejo de la imagen en particular debido a muchos píxeles que 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 generar una transformación de mejora de contraste, especificada como escalar entero positivo. Los valores más altos dan lugar a un mayor rango dinámico a costa de una velocidad de procesamiento más lenta.

Tipos de datos: double

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

ValorDescripción
'full'Utilice la gama completa de la clase Output (p. ej. [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'Crear un histograma plano.
'rayleigh'Crear un histograma en forma de campana.
'exponential'Crear un histograma curvo.

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

Tipos de datos: char | string

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

Tipos de datos: double

Argumentos de salida

contraer todo

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

Algoritmos

CLAHE opera en pequeñas regiones de la imagen, llamadas Azulejos, en lugar de toda la imagen. adapthisteq calcula la función de transformación de contraste para cada mosaico individualmente. Se mejora el contraste de cada mosaico, de manera que el histograma de la región de salida coincida aproximadamente con el histograma especificado por el valor' de 'Distribution. Los azulejos vecinos entonces se combinan usando la interpolación bilineal para eliminar límites artificial inducidos. El contraste, especialmente en áreas homogéneas, puede ser limitado 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