6
BBFHE: Block-based Binomial Filtering Histogram Equalization FABRIZIO LAMBERTI, BARTOLOMEO MONTRUCCHIO, ANDREA SANNA Dipartimento di Automatica ed Informatica Politecnico di Torino C.so Duca degli Abruzzi, 24 – 10129 Torino ITALY Abstract: Histogram equalization is an efficient contrast enhancement algorithm. Global equalization is effective, but enhances only overall contrast, while local histogram equalization is more powerful, but computationally expensive. In this paper, a Block-based Binomial Filtered Histogram Equalization (BBFHE) algorithm is presented. The image is divided into blocks, and for each block a histogram is obtained by means of a binomial filter applied on the block histogram itself and on other neighboring block histograms. A binomial filter achieves better results than other low pass filters and can be computed very efficiently. Experimental results show that the proposed algorithm is several times faster – depending on the selected image size – with a comparable visual quality, than the previous fastest method. Key-Words: Local histogram equalization, binomial filtering, block based histogram equalization 1 Introduction Images often suffer from a low contrast. For this reason contrast enhancement is widely used in image processing. There are many algorithms for contrast enhancement [1]; histogram modification (and in particular, histogram equalization) is commonly used because of its simplicity and effectiveness. Histogram equalization is the process which forces the histogram of the enhanced image to be uniform. The histogram of an image with L gray levels is the discrete function ( ) / k k p r n n = , in which ( ) k p r is the probability of occurrence of k -th gray level (with k from 0 to 1 L and k r from 0 to 1 ); k n is the number of pixels in the image with gray level k , while n is the total number of pixels within the input image. The transformation ( ) ( ) 0 0 / k k k k j j j j s Tr n n pr = = = = = produces an equalized image with a level k s for every pixel value k r in the original image. If the equalization is performed on the whole image, the histogram equalization is said to be global. If the histogram is taken on a contextual region (CR) we speak of adaptive (or local) histogram equalization (AHE). In particular CRs can be overlapped, and the result of the transformation ( ) k k s Tr = can be used only for the central pixel (Block Overlapped Histogram Equalization, BOHE) [5]. This method achieves good results [8], and several improvements have been presented. Contrast-limited AHE (CLAHE) [6] limits the amount of contrast enhancement in the areas of the image with low variability, reducing noise enhancement. For instance, in [4] a BOHE system for image sequences is presented, while in [7] AHE is described using a general framework; histogram equalization is obtained as a double convolution process, and this formalization allows a wide range of degrees of contrast enhancement to be produced. Computational complexity limits BOHE usefulness. For this reason many techniques have been developed to speed up computations. A local histogram can be computed interpolating the nearest non-overlapped CR values [5], or eventually it can be obtained directly using non-overlapped regions. However, this procedure produces a sort of blocking effect, in which a discontinuity appears on the margins of the CRs. Partially overlapped sub-block histogram-equalization (POSHE) [3] addresses the computational complexity problem with a low-pass filter- type mask so as to get a non-overlapped sub-block histogram equalization function. In this way POSHE reduces computational complexity with respect to BOHE. Blocking effect is also reduced, in some cases using a particular blocking effect reduction filter, BERF. In this paper, computational complexity is improved with respect to POSHE using a different filtering method on non-overlapped histograms. Experimental results show that depending on the selected image size, the proposed algorithm reduces computational times by several times with respect to POSHE, while visual quality is similar to that of BOHE and POSHE as well. The paper is organized as follows. Section 2 introduces the basic ideas that are behind the proposed Block-based Binomial Filtered Histogram Equalization algorithm. Sections 3 and 4 describe BBFHE in detail, while Section 5 compares BBFHE with global HE, BOHE and POSHE algorithms. Section 6 reports some remarks, while conclusions and future work are given in Section 7. 2 Basic ideas Adaptive histogram equalization (in particular BOHE) especially highlights details, even if noise is also often enhanced. For some applications BOHE is an optimal solution, but its main drawback is its computational complexity. Non-overlapped techniques allow a

lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

BBFHE: Block-based Binomial Filtering Histogram Equalization

FABRIZIO LAMBERTI, BARTOLOMEO MONTRUCCHIO, ANDREA SANNA Dipartimento di Automatica ed Informatica

Politecnico di Torino C.so Duca degli Abruzzi, 24 – 10129 Torino

ITALY

Abstract: Histogram equalization is an efficient contrast enhancement algorithm. Global equalization is effective, but enhances only overall contrast, while local histogram equalization is more powerful, but computationally expensive. In this paper, a Block-based Binomial Filtered Histogram Equalization (BBFHE) algorithm is presented. The image is divided into blocks, and for each block a histogram is obtained by means of a binomial filter applied on the block histogram itself and on other neighboring block histograms. A binomial filter achieves better results than other low pass filters and can be computed very efficiently. Experimental results show that the proposed algorithm is several times faster – depending on the selected image size – with a comparable visual quality, than the previous fastest method. Key-Words: Local histogram equalization, binomial filtering, block based histogram equalization 1 Introduction Images often suffer from a low contrast. For this reason contrast enhancement is widely used in image processing. There are many algorithms for contrast enhancement [1]; histogram modification (and in particular, histogram equalization) is commonly used because of its simplicity and effectiveness. Histogram equalization is the process which forces the histogram of the enhanced image to be uniform. The histogram of an image with L gray levels is the discrete function ( ) /k kp r n n= , in which ( )kp r is the probability of occurrence of k -th gray level (with k from 0 to 1L − and kr from 0 to 1); kn is the number of pixels in the image with gray level k , while n is the total number of pixels within the input image. The transformation

( ) ( )0 0/k k

k k j jj js T r n n p r

= == = =∑ ∑ produces an equalized

image with a level ks for every pixel value kr in the original image. If the equalization is performed on the whole image, the histogram equalization is said to be global. If the histogram is taken on a contextual region (CR) we speak of adaptive (or local) histogram equalization (AHE). In particular CRs can be overlapped, and the result of the transformation ( )k ks T r= can be used only for the central pixel (Block Overlapped Histogram Equalization, BOHE) [5]. This method achieves good results [8], and several improvements have been presented. Contrast-limited AHE (CLAHE) [6] limits the amount of contrast enhancement in the areas of the image with low variability, reducing noise enhancement. For instance, in [4] a BOHE system for image sequences is presented, while in [7] AHE is described using a general framework; histogram equalization is obtained as a double convolution process, and this formalization allows a wide range of degrees of contrast enhancement to be produced.

Computational complexity limits BOHE usefulness.

For this reason many techniques have been developed to speed up computations. A local histogram can be computed interpolating the nearest non-overlapped CR values [5], or eventually it can be obtained directly using non-overlapped regions. However, this procedure produces a sort of blocking effect, in which a discontinuity appears on the margins of the CRs. Partially overlapped sub-block histogram-equalization (POSHE) [3] addresses the computational complexity problem with a low-pass filter-type mask so as to get a non-overlapped sub-block histogram equalization function. In this way POSHE reduces computational complexity with respect to BOHE. Blocking effect is also reduced, in some cases using a particular blocking effect reduction filter, BERF.

In this paper, computational complexity is improved with respect to POSHE using a different filtering method on non-overlapped histograms. Experimental results show that depending on the selected image size, the proposed algorithm reduces computational times by several times with respect to POSHE, while visual quality is similar to that of BOHE and POSHE as well.

The paper is organized as follows. Section 2 introduces the basic ideas that are behind the proposed Block-based Binomial Filtered Histogram Equalization algorithm. Sections 3 and 4 describe BBFHE in detail, while Section 5 compares BBFHE with global HE, BOHE and POSHE algorithms. Section 6 reports some remarks, while conclusions and future work are given in Section 7. 2 Basic ideas Adaptive histogram equalization (in particular BOHE) especially highlights details, even if noise is also often enhanced. For some applications BOHE is an optimal solution, but its main drawback is its computational complexity. Non-overlapped techniques allow a

Page 2: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

considerable reduction of computation times, even if they often suffer from a blocking effect. Interpolating or filtering neighboring block histograms reduces blocking effect, but affects CPU time. The POSHE algorithm uses a low-pass filter-type mask in order to produce local histogram equalization-like results. This filter requires, with parameters suggested in [3] and without considering all other needed operations, 64 additions and 1 shift per pixel, while a direct computation of the suggested 15×15 mask would require 225 multiplications and 224 additions [2].

The main basic idea of the proposed methodology is to use a better and faster filter. A remarkably isotropic and easy to implement (since it can be decomposed) filter is the binomial one. In fact Gaussian convolution kernel (and its discrete counterpart the binomial kernel), is the only convolution kernel that satisfies both the minimum-maximum principle and the semi-group property (besides being homogeneous and isotropic) [2]. A binomial filter with a 15×15 mask requires only 28 additions and some shifts [2], and even less with an appropriate implementation. Speed-up allowed by the efficiency of the filter will be shown in Section 5.

The second basic idea is to average a certain number of equalizations carried out by partially shifting the image. This is required to eradicate the blocking-effect, that is due to the block based structure of the algorithm. Averaging is a really effective method, and is able to suppress the blocking effect, even if further computational power is required.

Binomial filter and averaging allow the proposed algorithm to be faster than (and to have a visual quality similar to ) BOHE and POSHE. 3 BBFHE Algorithm In non-overlapped sub-block histogram equalization, all pixels in each sub-block are equalized using the sub-block histogram. Sub-blocks are not overlapped with adjacent ones, and the computational complexity is considerably reduced. However, the non-overlapped method introduces a blocking effect due to differences in shape among the histogram-equalization functions of neighboring sub-blocks. To reduce such differences, the weighted sum of neighboring sub-blocks histograms can be used for the generation of the transformation function for the current block. POSHE performs this sum by following a partially overlapped scheme which, in the end, has the effect of applying a low pass filter (LPF) over the sub-block histograms. Blocking effect can be reduced by increasing the size of the filter mask. To remove the remaining blocking effect generated by POSHE at the sub-block boundaries, a Blocking Effect Reduction Filter (BERF) is needed.

The approach followed by BBFHE is based on the assumption that the application of a better filter should give better results. The basic idea therefore is to use a binomial

filter [2], that is more isotropic and has a fast (also hardware) implementation. The simplest binomial filter mask is [ ]1/ 2 1 1b = . Any p -sized one-dimensional filter mask (where p is the order of the filter) can be obtained by an iterative convolution of the elementary mask, as shown in (1).

[ ] [ ] [ ] times

1 1 1 1 1 1 12

pp

p

b = ∗ ∗ ∗… (1)

The one-dimensional binomial filter mask for 4p = is shown in (2).

[ ]1 1 4 6 4 116

pb = (2)

Two-dimensional binomial filters can be obtained through a convolution of a horizontal and a vertical one-dimensional mask. The 5×5 mask corresponding to a two-dimensional binomial filter with order 4p = is shown in (3).

4 4 4

1 4 6 4 14 16 24 16 4

1 1 1 6 24 36 24 616 16 256

4 16 24 16 41 4 6 4 1

B b b

= ∗ =

(3)

An important property of binomial filters is decomposition. The effect of the application of a two-dimensional mask can in fact be obtained by applying the corresponding one-dimensional mask separately in the horizontal and the vertical direction. Thus, binomial filters can be computed very efficiently. Another important property of binomial filters is that with the parameter p , it is possible to adjust the degree of isotropy and the degree of residual inhomogeneities in the transfer function of the filter. In particular, a good trade-off between low residual side peaks at high wave number and efficient implementation can be obtained by using 4p = .

In BBFHE, a binomial filter with 4p = , corresponding to a 5×5 filter mask, is used. The input image is first divided in sub-blocks and histograms are calculated for each sub-block. The decomposed two-dimensional binomial filter is then applied on each sub-block histogram and on its neighbors. Finally, the resulting histograms are used to perform the equalization on each sub-block. However, in many images it is possible that some discontinuities at sub-block boundaries are still visible. Binomial histogram equalization is therefore performed a certain number of times on partially shifted input images and the result is averaged so as to remove the blocking effect. The steps of BBFHE algorithm are as follows:

Page 3: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

1. Define a M N× shifted image array I for an M N× input image and set all values of I to those of the input image. Define a counter variable c and initialize its value to zero.

2. Choose / /BBFHE BBFHE BBFHEB M m N n= = as the block divisor and /BBFHE BBFHE shifta m h= , /BBFHE BBFHE shiftb n v= as the step divisors for averaging.

3. Define two BBFHE BBFHEB B× histogram matrices inputH

and outputH . Each element ( ),inputH i j and ( , )outputH i j points to an array of size L where L is the number of image gray levels of the input image. These arrays will store the histograms for blocks ( ),i j .

4. Perform the histogram computation on each BBFHE BBFHEm n× block of I . The histogram calculated

on block ( ),i j is stored in ( ),inputH i j . 5. Apply the binomial filter on the inputH histogram

matrix. The one-dimensional binomial mask is first applied in the horizontal direction, and then applied in the vertical direction. The results are divided by the scaling factor 2 p (with 4p = ) and stored in outputH .

6. Perform histogram equalization for each block. The histogram equalization is performed over the whole block using the updated histogram in outputH for the current block. Results are accumulated in the output image array shifted down of shiftc v× pixels and right of shiftc h× pixels.

7. Shift the input image. The input image is shifted left of shiftc h× pixels and up of shiftc v× pixels and the result

is stored in the shifted image array I . 8. Repeat steps from 4 to 7 d times increasing c . 9. Divide each pixel in output image array by d .

4 Algorithm configuration Since our aim is to provide an alternative to POSHE which is a powerful local histogram equalization technique capable of producing results comparable to those of BOHE, in this Section we investigate how BBFHE parameters can be configured in order to obtain POSHE-like results.

It can be demonstrated that applying the BBFHE procedure presented above is equivalent to the application of a larger filter mask on smaller sub-blocks. In particular, by iterating BBFHE procedure d times, the effect of the application of an equivalent ( ) ( )6 1 6 1d d− × − smoothing

mask on ( ) ( )/ /BBFHE BBFHEM B d N B d × × × -sized sub-blocks is achieved. That is, in BBFHE d plays the role of S (the overlap step) in POSHE limiting the differences between adjacent sub-block histograms and therefore contributing to eliminate the blocking effect. In particular,

we experienced that values of 8d ≥ allow to completely remove the blocking effect obtaining results comparable to those obtained using POSHE with ( )/ 16S B ≥ .

However, it has to be remarked that the specific binomial mask size which has been selected for its fine smoothing properties limits the possible kernel sizes of the equivalent mask which can be obtained through the application of the BBFHE algorithm. For example, for

8d = a 47×47 equivalent mask size is obtained. Since the kernel size of the filtering mask is fixed to predefined values, to obtain an histogram equalization effect comparable to that of POSHE, suitable BBFHE parameters have to be selected in order to obtain the same mask size in pixels. In particular, the value of the sub-block divisor

BBFHEB has to be individuated. Since POSHE mask size in pixels can be expressed

as ( ) ( )2 / / 2 / /POSHE POSHEM B M S M B M S× − × × − , if we impose to have the same mask size for both POSHE and BBFHE we get ( )2 / / 6 1POSHE BBFHEM B M S d a× − = − × or

( )2 / / 6 1POSHE BBFHEN B N S d b× − = − × . These expression are equivalent and we can concentrate on the first one. We obtain

( )

2

6 1POSHE

BBFHE

M MB Sa

d

× −=

− (4)

Since /BBFHE BBFHE BBFHEm d a M B= × = we get

( )6 1

2BBFHE

BBFHE

POSHE

M dMBd a M Md

B S

× −= =

× × × −

(5)

That is, by using the value in (5) for the sub-block divisor

BBFHEB , histogram equalization effects comparable to those of POSHE can be obtained. 5 Experimental Results BOHE, POSHE and BBFHE algorithms have been tested on several images. BOHE was applied on the test images using a sub-block divisor 4BOHEB = . POSHE algorithm was applied using 8POSHEB = and different mask sizes. Even if, in some cases, a 15×15 ( 8POSHEB = , 64S = ) mask allows POSHE to avoid discontinuities at sub-block boundaries, many images require at least a 31×31 ( 8POSHEB = , 128S = ) mask and the application of the BERF algorithm in order to remove the blocking effect completely. BBFHE was tested using 24BBFHEB = . We found that the best trade-off between visual quality and speed is obtained with 8d = . For a 5×5

Page 4: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

binomial filter mask, this results in a mask size in pixel comparable to the BOHE and POSHE equalization areas.

All tested algorithms have been implemented and deployed on a Intel-based architecture (Pentium III running at 700 MHz equipped with 256 MB of RAM), under Windows 2000 operating system. BOHE and POSHE have been implemented following the fast approach for histogram computation suggested in [1, 4]. Moreover, it should be noted that all the algorithms have to be modified slightly to work on edge pixels. For this reason, as proposed in [3], computation times for comparison purposes only refer to histogram equalization of the central region of the considered images.

Two sample backlit images with bright lights and areas of deep shadows are reported in Fig. 1(a) and 2(a) together with global HE-ed image (Figure 1(b) and 2(b)), while test results with BOHE, POSHE and BBFHE algorithms are shown in Fig. 1(c), 1(d), 1(e), 1(f), and 2(c), 2(d), 2(e), 2(f), respectively.

Table 1 shows processing times obtained on the test image in Fig. 1(a) for different image sizes, while Table 2 is for the test image reported in Fig. 2(a). Processing times have been obtained as the mean value over more than one execution. BBFHE computation time is comparable with those measured on BOHE ( 4BOHEB = ) and POSHE ( 8POSHEB = , 64S = ) only on a 512×512 image. On a 1024×1024 and on a 2048×2048 image, BBFHE executes 8 and 22 times faster than BOHE and two times faster than POSHE ( 8POSHEB = , 64S = ), respectively.

Since many images (here, Fig. 1(a) and 2(a) have been chosen as representative) require POSHE to use at least a 31×31 filter mask ( 8POSHEB = , 128S = ) to completely remove the blocking effect (even when BERF is used), we can conclude that, with similar visual quality results (see zoomed parts of Fig. 1(a)) BBFHE execution time is reduced by several times – depending on the selected image size – with respect to POSHE.

Algorithm 512×512 1024×1024 2048×2048

BOHE 0.84 15.33 127.56

POSHE ( 64S = ) 0.51 3.19 12.28

POSHE ( 128S = ) 1.72 11.03 43.11

BBFHE 0.5 1.65 5.75 Table 1: Computation times in seconds on a Pentium III running at 700 MHz of BOHE ( 4BOHEB = ), POSHE ( 8POSHEB = ) and BBFHE ( 24BBFHEB = , 8d = ) for the image reported in Fig. 1(a), when image size is varied.

Algorithm 512×512 1024×1024 2048×2048

BOHE 0.84 15.33 127.55

POSHE ( 64S = ) 0.5 3.18 12.16

POSHE ( 128S = ) 1.7 11.22 42.62

BBFHE 0.52 1.8 5.69 Table 2: Computation times in seconds on a Pentium III running at 700 MHz of BOHE ( 4BOHEB = ), POSHE ( 8POSHEB = ) and BBFHE ( 24BBFHEB = , 8d = ) for the image reported in Fig. 2(a), when image size is varied 6 Remarks In Fig. 1 and 2 it can be observed that, as expected, the contrast of the BBFHE equalized image has been enhanced more favorably compared to that of the original and globally equalized images. Furthermore, BBFHE produces better results, comparable to those obtained with BOHE and POSHE. In particular, Fig. 1 shows that BBFHE has a visual quality similar to BOHE, while POSHE requires values of S greater than the values suggested in [3] (that are the values used in Fig. 1(d) and 2(d)) to get the same results.

In Fig.3 histograms for the original image in Fig. 1(a) as well as for HE-ed, POSHE-ed and BBFHE-ed images are reported. It can be observed that histograms for BOHE, POSHE, and BBFHE are overlapped: this shows that the final results are similar, too.

Fig. 3. Histograms for the image in Fig. 1 (original, BOHE-ed 4BOHEB = , POSHE-ed 8POSHEB = and 128S = , BBFHE-ed 24BBFHEB = , 8d = ).

Page 5: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

(a) (b) (c)

(d) (e) (f)

Fig. 1. Test results and particular. (a) Original. (b) HE-ed image. (c) BOHE-ed image with 4BOHEB = . (d) POSHE-ed image with 8POSHEB = , 64S = . (e) POSHE-ed image with 8POSHEB = , 128S = . (f) BBFHE-ed image with 24BBFHEB = and 8d = .

(a) (b) (c)

(d) (e) (f)

Fig. 2. Test results. (a) Original. (b) HE-ed image. (c) BOHE-ed image with 4BOHEB = . (d) POSHE-ed image with

8POSHEB = , 64S = . (e) POSHE-ed image with 8POSHEB = , 128S = . (f) BBFHE-ed image with 24BBFHEB = and 8d = .

Page 6: lambertiVenezia - WSEAS · Title: Microsoft Word - lambertiVenezia.rtf Author: fabrizio Created Date: 10/20/2004 7:28:25 AM

(a) (b)

(c) (d)

Fig. 4. Test results. (a) Original. (b) BOHE-ed image with

4BOHEB = . (c) POSHE-ed image with 8POSHEB = , 128S = . (d) BBFHE-ed image with 24BBFHEB = and 8d = .

It has to be observed that the image reported in Fig.

1 is the 512×512 one, and on the paper it features 300 dpi. Zoomed parts are of 150 dpi and show how BBFHE achieves visual quality results quite similar to BOHE at 300 dpi and slightly less good at 150 dpi. Furthermore, BBFHE visual quality is comparable to that of POSHE (previous fastest algorithm), always being significantly faster. The images reported in Fig. 2 are the 1024×1024 ones, and are reproduced at 300 dpi. Visual (and computational) results are the same1.

According to [8], to show the applicability and effectiveness of histogram equalization techniques for contrast enhancement in diagnostic imaging, a chest CT scan and associated BOHE-ed, POSHE-ed and BBFHE-ed enhanced images are reported in Fig. 4. It is worth noticing that – as already mentioned – for some images a value of S in POSHE equal to 64 (with 8POSHEB = ) is sufficient; in such cases it is worth noting that BBFHE would require a

1 Since typographical reproduction and lossy compression can modify visual comparison, all original uncompressed images can be found at http://130.192.16.190/WSEAS/.

smaller value of d . Since halving d approximately means doubling the speed of BBFHE ( 8d = means that equalization is performed 8 times), for such simpler images BBFHE algorithm improves its speed further.

7 Conclusion and future work In this paper a new block-based binomial filtered histogram equalization algorithm (BBFHE) has been presented. The image is divided into blocks, and for each block a local histogram is obtained by means of a binomial filter applied on the block histogram itself and on the other neighboring block histograms. Blocking effect is deleted by averaging a number of equalizations (realized partially shifting the image). Results show that the proposed algorithm is significantly faster, with a comparable visual quality, than the previous fastest method. For this reason proposed algorithm seems to be useful for a large number of contrast enhancement applications. Future work will be aimed at quantitatively measuring contrast enhancement capabilities as well as image quality with respect to other algorithms and at providing efficient H/W and S/W implementations. References: [1] R.C. Gonzales and R.E. Woods, Digital Image

Processing, Addison-Wesley, 1992. [2] B.Jähne, Digital Image Processing, Springer-Verlag,

1997. [3] J.Y. Kim, L.S. Kim, and S.H. Hwang, An advanced

contrast enhancement using partially overlapped sub-block histogram equalization, IEEE Trans. On Circ. and Sys. for Video Tech., Vol. 11, No. 4, 2001, pp. 475-484.

[4] T.K. Kim, J.K. Paik, and B.S. Kang, Contrast enhancement system using spatially adaptive histogram equalization with temporal filtering, IEEE Trans On Consumer Electronic, Vol. 44, No. 1, 1998, pp. 82-87.

[5] S.M. Pizer, E.P. Amburn, J.D. Austin, R.Cromartie, A.Geselowitz, T.Greer, B.H. Romeny, J.B. Zimmerman, and K.Zuiderveld, Adaptive histogram equalizations and its variations, Comp. Vis., Graphics and Image Proc., Vol. 39, No. 3, 1987, pp. 355-368.

[6] S.M. Pizer, R.E. Johnston, J.P. Ericksen, B.C. Yankaskas, and K.E. Muller, Contrast-limited adaptive histogram equalization: Speed and effectiveness, Proc. of the Conf. On Visual. in Biomed. Comp., 1990, pp. 337-345.

[7] J.Stark, Adaptive image contrast enhancement using generalizations of histogram equalization, IEEE Trans. On Image Proc., Vol. 9, No. 5, 2000, pp. 889-896.

[8] J.B. Zimmerman, S.M. Pizer, E.V. Staab, J.R. Perry, W.McCartney, and B.C. Brenton, An evaluation of the effectiveness of adaptive histogram equalization for contrast enhancement, IEEE Trans. On Medical Imaging, Vol 7, No. 4, 1988, pp. 304-312.