Drawing Color Histograms and Color Clouds

Matlab code to plot color histograms and color clouds
11.9K Downloads
Updated 1 Aug 2010

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Usage: createColorHistograms(im_str)
im_str can be an image file location or a three-dimensional array

There seem to be two confounds in plotting color histograms. One is the obvious one of showing a three-dimensional distribution in two-dimensions. And the other is the perceptual confound of showing actual colors without contextual interactions.

The usual method of plotting histograms separately for each of the three primary color bands is hardly optimal. There's no reason to believe that the peaks of the individual bands correspond to the same triplet of color, and the even the fundamental idea of showing spectral densities with graphs that could just as well be used for any universal triplet is dicey. Why not have the graphs speak to you in the visual language of color when they are supposed to be describing color?

As a starting point I decided to bin the color triplets into bands of 25 gray-scale values in each of the RGB band. That is, each (r,g,b) triplet is truncated as (r*,g*,b*) where each value can only be a multiple of 25 up to a maximum of 255. That gives you a resolution of 11^3 voxels in the entire color space covered by a 24-bit representation. The next step is deciding how to order the bins. Our perception of color difference varies quite a bit from the euclidean distance between two color triplets. It seemed prudent to take brightness out of the mix by normalizing all triplets by the sum of their values, making them (r/(r+g+b), g/(r+g+b), b/(r+g+b)) and then ordering them with (1,0,0) (primary red) as the leftmost point.

You can view some examples here:
http://cns.bu.edu/~gsc/ColorHistograms.html

Cite As

Chaitanya Sai Gaddam (2024). Drawing Color Histograms and Color Clouds (https://www.mathworks.com/matlabcentral/fileexchange/20757-drawing-color-histograms-and-color-clouds), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.4.0.0

Updated links

1.3.0.0

Corrected url location

1.0.0.0