Page 118 -
P. 118

3.1 Point operators                                                                     97


                                          s                                s


                                                                t
                                t












                                            (a)                            (b)

               Figure 3.9 Local histogram interpolation using relative (s, t) coordinates: (a) block-based histograms, with
               block centers shown as circles; (b) corner-based “spline” histograms. Pixels are located on grid intersections. The
               black square pixel’s transfer function is interpolated from the four adjacent lookup tables (gray arrows) using the
               computed (s, t) values. Block boundaries are shown as dashed lines.


                                                                                     3
               limited (gain-limited) version is known as CLAHE (Pizer, Amburn, Austin et al. 1987). The
               weighting function for a given pixel (i, j) can be computed as a function of its horizontal
               and vertical position (s, t) within a block, as shown in Figure 3.9a. To blend the four lookup
               functions {f 00 ,...,f 11 },a bilinear blending function,

                  f s,t (I)=(1 − s)(1 − t)f 00 (I)+ s(1 − t)f 10 (I)+(1 − s)tf 01 (I)+ stf 11 (I)  (3.10)
               can be used. (See Section 3.5.2 for higher-order generalizations of such spline functions.)
               Note that instead of blending the four lookup tables for each output pixel (which would be
               quite slow), we can instead blend the results of mapping a given pixel through the four neigh-
               boring lookups.
                  A variant on this algorithm is to place the lookup tables at the corners of each M × M
               block (see Figure 3.9b and Exercise 3.7). In addition to blending four lookups to compute the
               final value, we can also distribute each input pixel into four adjacent lookup tables during the
               histogram accumulation phase (notice that the gray arrows in Figure 3.9b point both ways),
               i.e.,
                                         h k,l (I(i, j)) += w(i, j, k, l),          (3.11)

               where w(i, j, k, l) is the bilinear weighting function between pixel (i, j) and lookup table
               (k, l). This is an example of soft histogramming, which is used in a variety of other applica-
               tions, including the construction of SIFT feature descriptors (Section 4.1.3) and vocabulary
               trees (Section 14.3.2).

               3.1.5 Application: Tonal adjustment

               One of the most widely used applications of point-wise image processing operators is the
               manipulation of contrast or tone in photographs, to make them look either more attractive or

                  3 This algorithm is implemented in the MATLAB adapthist function.
   113   114   115   116   117   118   119   120   121   122   123