Sponsored Links

Sabtu, 27 Januari 2018

Sponsored Links

HISTOGRAM EQUALIZATION AND SPECIFICATION WITH SOLVED EXAMPLE - YouTube
src: i.ytimg.com

Histogram equalization is a method in image processing of contrast adjustment using the image's histogram.


Video Histogram equalization



Overview

This method usually increases the global contrast of many images, especially when the usable data of the image is represented by close contrast values. Through this adjustment, the intensities can be better distributed on the histogram. This allows for areas of lower local contrast to gain a higher contrast. Histogram equalization accomplishes this by effectively spreading out the most frequent intensity values.

The method is useful in images with backgrounds and foregrounds that are both bright or both dark. In particular, the method can lead to better views of bone structure in x-ray images, and to better detail in photographs that are over or under-exposed. A key advantage of the method is that it is a fairly straightforward technique and an invertible operator. So in theory, if the histogram equalization function is known, then the original histogram can be recovered. The calculation is not computationally intensive. A disadvantage of the method is that it is indiscriminate. It may increase the contrast of background noise, while decreasing the usable signal.

In scientific imaging where spatial correlation is more important than intensity of signal (such as separating DNA fragments of quantized length), the small signal to noise ratio usually hampers visual detection.

Histogram equalization often produces unrealistic effects in photographs; however it is very useful for scientific images like thermal, satellite or x-ray images, often the same class of images to which one would apply false-color. Also histogram equalization can produce undesirable effects (like visible image gradient) when applied to images with low color depth. For example, if applied to 8-bit image displayed with 8-bit gray-scale palette it will further reduce color depth (number of unique shades of gray) of the image. Histogram equalization will work the best when applied to images with much higher color depth than palette size, like continuous data or 16-bit gray-scale images.

There are two ways to think about and implement histogram equalization, either as image change or as palette change. The operation can be expressed as P(M(I)) where I is the original image, M is histogram equalization mapping operation and P is a palette. If we define a new palette as P'=P(M) and leave image I unchanged then histogram equalization is implemented as palette change. On the other hand, if palette P remains unchanged and image is modified to I'=M(I) then the implementation is by image change. In most cases palette change is better as it preserves the original data.

Modifications of this method use multiple histograms, called subhistograms, to emphasize local contrast, rather than overall contrast. Examples of such methods include adaptive histogram equalization, contrast limiting adaptive histogram equalization or CLAHE, multipeak histogram equalization (MPHE), and multipurpose beta optimized bihistogram equalization (MBOBHE). The goal of these methods, especially MBOBHE, is to improve the contrast without producing brightness mean-shift and detail loss artifacts by modifying the HE algorithm.

A signal transform equivalent to histogram equalization also seems to happen in biological neural networks so as to maximize the output firing rate of the neuron as a function of the input statistics. This has been proved in particular in the fly retina.

Histogram equalization is a specific case of the more general class of histogram remapping methods. These methods seek to adjust the image to make it easier to analyze or improve visual quality (e.g., retinex)

Back projection

The back projection (or "project") of a histogrammed image is the re-application of the modified histogram to the original image, functioning as a look-up table for pixel brightness values.

For each group of pixels taken from the same position from all input single-channel images, the function puts the histogram bin value to the destination image, where the coordinates of the bin are determined by the values of pixels in this input group. In terms of statistics, the value of each output image pixel characterizes the probability that the corresponding input pixel group belongs to the object whose histogram is used.


Maps Histogram equalization



Implementation

Consider a discrete grayscale image {x} and let ni be the number of occurrences of gray level i. The probability of an occurrence of a pixel of level i in the image is

  p x ( i ) = p ( x = i ) = n i n , 0 <= i < L {\displaystyle \ p_{x}(i)=p(x=i)={\frac {n_{i}}{n}},\quad 0\leq i<L}

L being the total number of gray levels in the image (typically 256), n being the total number of pixels in the image, and p x ( i ) {\displaystyle p_{x}(i)} being in fact the image's histogram for pixel value i, normalized to [0,1].

Let us also define the cumulative distribution function corresponding to px as

  c d f x ( i ) = ? j = 0 i p x ( j ) {\displaystyle \ cdf_{x}(i)=\sum _{j=0}^{i}p_{x}(j)} ,

which is also the image's accumulated normalized histogram.

We would like to create a transformation of the form y = T(x) to produce a new image {y}, with a flat histogram. Such an image would have a linearized cumulative distribution function (CDF) across the value range, i.e.

  c d f y ( i ) = i K {\displaystyle \ cdf_{y}(i)=iK}

for some constant K. The properties of the CDF allow us to perform such a transform (see Inverse distribution function); it is defined as

  c d f y ( y ? ) = c d f y ( T ( k ) ) = c d f x ( k ) {\displaystyle \ cdf_{y}(y^{\prime })=cdf_{y}(T(k))=cdf_{x}(k)}

where k is in the range [0,L]). Notice that T maps the levels into the range [0,1], since we used a normalized histogram of {x}. In order to map the values back into their original range, the following simple transformation needs to be applied on the result:

  y ? = y ? ( max { x } - min { x } ) + min { x } {\displaystyle \ y^{\prime }=y\cdot (\max\{x\}-\min\{x\})+\min\{x\}}

A more detailed derivation is provided here.


Image Processing : Histogram Equalization using MATLAB code ~ Code ...
src: 3.bp.blogspot.com


Histogram equalization of color images

The above describes histogram equalization on a grayscale image. However it can also be used on color images by applying the same method separately to the Red, Green and Blue components of the RGB color values of the image. However, applying the same method on the Red, Green, and Blue components of an RGB image may yield dramatic changes in the image's color balance since the relative distributions of the color channels change as a result of applying the algorithm. However, if the image is first converted to another color space, Lab color space, or HSL/HSV color space in particular, then the algorithm can be applied to the luminance or value channel without resulting in changes to the hue and saturation of the image. There are several histogram equalization methods in 3D space. Trahanias and Venetsanopoulos applied histogram equalization in 3D color space However, it results in "whitening" where the probability of bright pixels are higher than that of dark ones. Han et al. proposed to use a new cdf defined by the iso-luminance plane, which results in uniform gray distribution.


Image Processing in Matlab Part 2 Thresholding Segmentation ...
src: i.ytimg.com


Examples

For consistency with statistical usage, "CDF" (i.e. Cumulative distribution function) should be replaced by "cumulative histogram", especially since the article links to cumulative distribution function which is derived by dividing values in the cumulative histogram by the overall amount of pixels. The equalized CDF is defined in terms of rank as r a n k / p i x e l c o u n t {\displaystyle rank/pixelcount} .

Small image

The 8-bit grayscale image shown has the following values:

[ 52 55 61 59 70 61 76 61 62 59 55 104 94 85 59 71 63 65 66 113 144 104 63 72 64 70 70 126 154 109 71 69 67 73 68 106 122 88 68 68 68 79 60 79 77 66 58 75 69 85 64 58 55 61 65 83 70 87 69 68 65 73 78 90 ] {\displaystyle {\begin{bmatrix}52&55&61&59&70&61&76&61\\62&59&55&104&94&85&59&71\\63&65&66&113&144&104&63&72\\64&70&70&126&154&109&71&69\\67&73&68&106&122&88&68&68\\68&79&60&79&77&66&58&75\\69&85&64&58&55&61&65&83\\70&87&69&68&65&73&78&90\end{bmatrix}}}

The histogram for this image is shown in the following table. Pixel values that have a zero count are excluded for the sake of brevity.

The cumulative distribution function (cdf) is shown below. Again, pixel values that do not contribute to an increase in the cdf are excluded for brevity.

This cdf shows that the minimum value in the subimage is 52 and the maximum value is 154. The cdf of 64 for value 154 coincides with the number of pixels in the image. The cdf must be normalized to [ 0 , 255 ] {\displaystyle [0,255]} . The general histogram equalization formula is:

h ( v ) = r o u n d ( c d f ( v ) - c d f m i n ( M × N ) - 1 × ( L - 1 ) ) {\displaystyle h(v)=\mathrm {round} \left({\frac {cdf(v)-cdf_{min}}{(M\times N)-1}}\times (L-1)\right)}

where cdfmin is the minimum non-zero value of the cumulative distribution function (in this case 1), M × N gives the image's number of pixels (for the example above 64, where M is width and N the height) and L is the number of grey levels used (in most cases, like this one, 256).


Note that to scale values in the original data that are above 0 to the range 1 to L-1, inclusive, the above equation would instead be:

h ( v ) = r o u n d ( c d f ( v ) - c d f m i n ( M × N ) - 1 × ( L - 2 ) ) + 1 {\displaystyle h(v)=\mathrm {round} \left({\frac {cdf(v)-cdf_{min}}{(M\times N)-1}}\times (L-2)\right)+1}

where cdf(v) > 0. Scaling from 1 to 255 preserves the non-zero-ness of the minimum value.


The equalization formula for the example scaling data from 0 to 255, inclusive, is:

h ( v ) = r o u n d ( c d f ( v ) - 1 63 × 255 ) {\displaystyle h(v)=\mathrm {round} \left({\frac {cdf(v)-1}{63}}\times 255\right)}

For example, the cdf of 78 is 46. (The value of 78 is used in the bottom row of the 7th column.) The normalized value becomes

h ( 78 ) = r o u n d ( 46 - 1 63 × 255 ) = r o u n d ( 0.714286 × 255 ) = 182 {\displaystyle h(78)=\mathrm {round} \left({\frac {46-1}{63}}\times 255\right)=\mathrm {round} \left(0.714286\times 255\right)=182}

Once this is done then the values of the equalized image are directly taken from the normalized cdf to yield the equalized values:

[ 0 12 53 32 146 53 174 53 57 32 12 227 219 202 32 154 65 85 93 239 251 227 65 158 73 146 146 247 255 235 154 130 97 166 117 231 243 210 117 117 117 190 36 190 178 93 20 170 130 202 73 20 12 53 85 194 146 206 130 117 85 166 182 215 ] {\displaystyle {\begin{bmatrix}0&12&53&32&146&53&174&53\\57&32&12&227&219&202&32&154\\65&85&93&239&251&227&65&158\\73&146&146&247&255&235&154&130\\97&166&117&231&243&210&117&117\\117&190&36&190&178&93&20&170\\130&202&73&20&12&53&85&194\\146&206&130&117&85&166&182&215\end{bmatrix}}}

Notice that the minimum value (52) is now 0 and the maximum value (154) is now 255.

Full-sized image


OpenCV Programming the Raspberry Pi:Tutorial-19 Histogram ...
src: i.ytimg.com


See also

  • Histogram matching
  • Adaptive histogram equalization
  • Normalization (image processing)

Investigating the role of global histogram equalization technique ...
src: www.ijnm.in


Notes


HISTOGRAM EQUALIZATION AND SPECIFICATION WITH SOLVED EXAMPLE - YouTube
src: i.ytimg.com


References

  • Acharya and Ray, Image Processing: Principles and Applications, Wiley-Interscience 2005 ISBN 0-471-71998-6
  • Russ, The Image Processing Handbook: Fourth Edition, CRC 2002 ISBN 0-8493-2532-3

Histogram equalization and contrast stretching in Matlab - YouTube
src: i.ytimg.com


External links

  • Page by Ruye Wang with good explanation and pseudo-code

Source of the article : Wikipedia

Comments
0 Comments