Enhance contrast using histogram equalization
transforms the color map associated with the indexed image newmap
= histeq(X
,map
,hgram
)X
so that the histogram of the gray component of the indexed image
(X
,newmap
) approximately matches
the target histogram hgram
. The histeq
function returns the transformed color map in newmap
.
length(hgram)
must be the same as
size(map,1)
.
[___,
also returns the transformation T
]
= histeq(___)T
that maps the gray
component of the input grayscale image or color map to the gray component of the
output grayscale image or color map.
When you supply a desired histogram hgram
, histeq
chooses the grayscale transformation T
to minimize
c0 is the cumulative
histogram of the input image I
, and
c1 is the cumulative sum of
hgram
for all intensities k. This
minimization is subject to these constraints:
T
must be monotonic
c1(T(a)) cannot overshoot c0(a) by more than half the distance between the histogram counts at a
histeq
uses the transformation b =
T(a) to map the gray levels in
X
(or the color map) to their new values.
If you do not specify hgram
, then histeq
creates a
flat hgram
,
hgram = ones(1,n)*prod(size(A))/n;
and then applies the previous algorithm.