Image Processing Reference
In-Depth Information
3.5 (b). The scaling factors were chosen to ensure that the resulting image can be displayed
since the logarithm or exponent greatly reduces or magnifies pixel values, respectively.
This can be seen in the results: Figure 3.5 (a) is dark with a small range of brightness levels
whereas Figure 3.5 (b) is much brighter, with greater contrast. Naturally, application of the
logarithmic point operator will change any multiplicative changes in brightness to become
additive . As such, the logarithmic operator can find application in reducing the effects of
multiplicative intensity change. The logarithm operator is often used to compress Fourier
transforms, for display purposes. This is because the d.c. component can be very large with
contrast too large to allow the other points to be seen.
In hardware, point operators can be implemented using look-up tables (LUTs) which
exist in some framegrabber units. LUTs give an output that is programmed, and stored, in
a table entry that corresponds to a particular input value. If the brightness response of the
camera is known, then it is possible to pre-program a LUT to make the camera response
equivalent to a uniform or flat response across the range of brightness levels (in software,
this can be implemented as a CASE function).
3.3.2
Histogram normalisation
Popular techniques to stretch the range of intensities include histogram ( intensity )
normalisation . Here, the original histogram is stretched, and shifted, to cover all the 256
available levels. If the original histogram of old picture O starts at O min and extends up to
O max brightness levels, then we can scale up the image so that the pixels in the new picture
N lie between a minimum output level N min and a maximum level N max , simply by scaling
up the input intensity levels according to:
NN
OO
-
-
max
min
N
=
(
OO N
-
) +
xy
,
1,
N
(3.2)
xy
,
xy
,
min
min
max
min
A Matlab implementation of intensity normalisation, appearing to mimic Matlab's
imagesc function, the normalise function in Code 3.2 , uses an output ranging from
N min = 0 to N max = 255. This is scaled by the input range that is determined by applying the
max and the min operators to the input picture. Note that in Matlab, a 2-D array needs
double application of the max and min operators whereas in Mathcad max(image)
delivers the maximum. Each point in the picture is then scaled as in Equation 3.2 and the
floor function is used to ensure an integer output.
The process is illustrated in Figure 3.6 , and can be compared with the original image
and histogram in Figure 3.1 . An intensity normalised version of the eye image is shown in
Figure 3.6 (a) which now has better contrast and appears better to the human eye. Its
histogram, Figure 3.6 (b), shows that the intensity now ranges across all available levels
(there is actually one black pixel!).
3.3.3
Histogram equalisation
Histogram equalisation is a non-linear process aimed to highlight image brightness in a
way particularly suited to human visual analysis. Histogram equalisation aims to change a
picture in such a way as to produce a picture with a flatter histogram, where all levels are
equiprobable. In order to develop the operator, we can first inspect the histograms. For a
range of M levels then the histogram plots the points per level against level. For the input
Search WWH ::




Custom Search