Azzera filtri
Azzera filtri

How to create histograms for L a b channels separately in CIELAB color space.

3 visualizzazioni (ultimi 30 giorni)
How to create histograms for L a b channels separately in CIELAB color space.

Risposta accettata

Image Analyst
Image Analyst il 24 Nov 2016
Modificato: Image Analyst il 7 Mag 2024
Try this:
rgbImage = imread('peppers.png'); % Read in example image shipped with MATLAB
labImage = rgb2lab(rgbImage);
[LImage, AImage, BImage] = imsplit(labImage);
Then call histogram on each image.
figure;
subplot(4, 2, 1);
imshow(rgbImage);
title('Original RGB image')
subplot(4, 2, 3);
imshow(LImage, []);
title('L Image')
subplot(4, 2, 4);
histogram(LImage);
title('Histogram of L image');
subplot(4, 2, 5);
imshow(AImage, []);
title('A Image')
subplot(4, 2, 6);
histogram(AImage);
title('Histogram of A image');
subplot(4, 2, 7);
imshow(BImage, []);
title('B Image')
subplot(4, 2, 8);
histogram(BImage);
title('Histogram of B image');
Or see my attached demo and adapt it to LAB color space.

Più risposte (1)

DGM
DGM il 7 Mag 2024
Modificato: DGM il 24 Mag 2024
Let's actually plot some histograms. I'm using fixed xlimits so that the histograms are presented consistently between images and it's readily apparent where the chroma distribution is in relative terms. The limits I chose are wider than the gamut of sRGB as projected into LAB using the applied transformation parameters buried in rgb2lab(), though I've made no effort to mark those extents. I just wanted the neutral axis to be centered.
inpict = imread('peppers.png');
labpict = rgb2lab(inpict);
limits = [0 100; -108 108; -108 108]; % oversize and symmetric
for c = 1:3
subplot(3,1,c)
histogram(labpict(:,:,c));
% use fixed limits so that presentation is consistent
xlim(limits(c,:))
end
MIMT now has a tool to do this.
% an RGB image
inpict = imread('peppers.png');
% use defaults
cshist(inpict,'lab');
% use a filled patch instead of the default bar plot
cshist(inpict,'lab','style','patch');
% or use a stem plot like imhist()
cshist(inpict,'lab','style','stem');
See also:

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by