File Exchange

image thumbnail

Exact histogram equalization and specification

version (6.24 KB) by Anton Semechko
Perform exact histogram specification or equalization of 2D grayscale images


Updated 06 May 2019

GitHub view license on GitHub

Histogram equalization is a traditional image enhancement technique which aims to improve visual appearance of the image by assigning equal number of pixels to all available intensity values. Histogram specification is a generalization of histogram equalization and is typically used as a standardization technique to normalize image with respect to a desired PDF or properties such as mean intensity, energy and entropy. Unlike classical histogram specification, exact histogram specification algorithm implemented here is able to modify the histogram of any image almost exactly (see snapshot).

In the attached .zip file you will find three M-files and one image. The M-file called EXACT_HISTOGRAM.M is an implementation of exact histogram specification algorithm as described in the following references:

1. Coltuc D. and Bolon P., 1999, "Strict ordering on discrete images and applications"
2. Coltuc D., Bolon P. and Chassery J-M., 2006, "Exact histogram specification", IEEE Transcations on Image Processing 15(5):1143-1152

Unpack the contents of the .rar file into your current working directory.
For a quick demo type: demoHS
For help type on how to use the function: help exact_histogram

Cite As

Anton Semechko (2020). Exact histogram equalization and specification (, GitHub. Retrieved .

Comments and Ratings (9)


Falak Shah

Excellent work.. done exactly as per the paper.. Thanks..

There is no bug. The algorithm is implemented exactly as described by Cultuc et al. in the above references. You can provide any image with sufficient amount of textural variance and specify any histogram, you will see that the intensity distribution will be matched almost exactly ...


Hello Mr. Anton,

I have used the code for implementation of "Flattest Histogram Specification with accurate
brightness preservation" and have found a very different result on applying the exact histogram code attached here-in. It shows the entropy of the image to increase very significantly which is very much different from the results reported in few papers. I would like to know if there is some modification or an enhanced version of the code that you came up further as there seems to be some bug.

Excellent work!


- migrated to GitHub

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