Cómo mejorar el contraste de una imagen indexada utilizando las funciones de mejora del contraste (imadjust, histeq y adapthisteq) en el espacio de color L*a*b
Escribí un ejemplo para que puedas consultarlo y cambiar la ruta de la imagen a la tuya.
M=imread('C:\Users\Zhang Zhengya\Pictures\71776BEBCF57.jpg');
%imshow(M);
[P ,map]=rgb2ind(M,256);
Q=ind2rgb(P,map); %Convertir a imagen en color verdadero
%Crear desde RGB estándar a L*A* Estructura de conversión de color del espacio B
srgb2lab=makecform('srgb2lab');
% Crea una estructura de conversión de color de L*A*B al espacio RGB estándar
lab2srgb= makecform('lab2srgb');
P_lab=applycform(Q,srgb2lab);%Convertir al espacio de laboratorio
%Convertir el valor de brillo a 0, 1, A cumplir con los requisitos de MATLAB para tipos de datos de imágenes en escala de grises
max_luminosity= max(max(P_lab));% Obtener el valor máximo de píxeles
L=P_lab(:,:,1) / max_luminosity; %Obtener el componente de luminancia
%Usar la función de ajuste de imagen para cambiar el contraste
P_imadjust=P_lab;
P_imadjust(:,:,1) =imadjust (L)*max_luminosity;
P_imadjust=applycform(P_imadjust,lab2srgb);
%Utiliza la función de ecualización de histograma para cambiar el contraste
P_ histeq =P_lab;
P_histeq(:,:,1)=histeq(L)*max_luminosidad;
P_histeq=applycform(P_histeq,lab2srgb);
% Utilice la función de ecualización de histograma adaptativa para cambiar el contraste
P_adapthisteq=P_lab;
P_adapthisteq(:,:,1)=adapthisteq(L)*max_luminosity;
P_adapthisteq =applycform(P_adapthisteq,lab2srgb);
subplot(221);subimage(P);
title('(a) Imagen en escala de grises de la imagen original (imagen de índice)') ;
subplot(222); subimage(P_imadjust);
title('(b) Imagen después de mejorar la función imadjust');
subplot(223) ;subimage(P_histeq);
title('(c) imagen después de la función histeq mejorada');
subplot(224).subimage(P_adapthisteq);
title('(d) Imagen mejorada usando la función adaptthisteq');
subplot(224).