- By
**laird** - Follow User

- 170 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' สจพ' - laird

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

2.3 Histogram-based Operations

- What's a histogram?
- The Histogram shows the total tonal distribution in the image – global quality.
- It's a bar-chart of the count of pixels of every tone of gray that occurs in the image.
- It helps us analyze, and more importantly, correct the contrast of the image.

DI&SP

MTCT

Histogram

- Histogram
- A simple bar graph that stands for pixel intensities.
- The pixel intensities are plotted along the x-axis and the number of occurrences for each intensity are plotted along the y-axis.
- Provide information about contrast and overall intensity distribution of an image

- A simple bar graph that stands for pixel intensities.

- The histogram barchart shows at a glance the relative image tone distribution over the entire range.
- In this image, we have a very high count of pixels that are near, but not at, the white end.

- We also have many that are near, but not at, the black end. tone distribution over the entire range.
- Our image does not totally fill the possible range from darkest to lightest tones.
- Our image could have more contrast.

2.3.1 Histogram Equalization tone distribution over the entire range.

- Histogram Equalization
- (Goal) to obtain a uniform histogram for the output image
- Mapping of gray level r into gray level s s.t. the distribution of gray level s is uniform.
- Spreading: the peaks and valleys will be shifted (due to approximation in digitized space)

- (Goal) to obtain a uniform histogram for the output image

2.3.1 Histogram Equalization tone distribution over the entire range.

- Histogram Equalization Steps
- Compute histogram.
- Calculate normalized sum of histogram
- Transform input image to output image

Ex. HE tone distribution over the entire range.

- Image of 16-level intensity values

Its corresponding histogram

1) Compute histogram tone distribution over the entire range.

2) Accum. tone distribution over the entire range. histogram

2) Accum. histogram tone distribution over the entire range.

3) Transform input image to output image tone distribution over the entire range.

Result intensity values tone distribution over the entire range.

Its corresponding histogram

Histogram Equalization tone distribution over the entire range.

Fig. 2.8 (a) Original image; (b) histogram of original image; (c) histogram equalized image; (d) histogram of equalized image.

Histogram Equalization tone distribution over the entire range.

- The effects of H.E.
- H.E. stretches contrast (expand the range of gray levels) for gray levels near histogram maxima
- Compresses contrast in areas with gray levels near histogram minima.
- Contrast is expanded for the most of the image pixels => H.E. usually improves the detectability of many image features.

Histogram Equalization tone distribution over the entire range.

- The effects of H.E.
- The resulting histogram is not flat
- nothing in the discrete approximation of the continuous result previously derived says that it should be flat.

- Similar effect of enhancement could be achieved by manual contrast stretching approach
- But, the advantage of H.E is fully automatic.

- The resulting histogram is not flat

Histogram Equalization tone distribution over the entire range.

// histogram

for( idx = 0; idx < IpixelValue.length; idx++ ) { r = ( IpixelValue[idx] & 0x00FF0000 ) >> 16; g = ( IpixelValue[idx] & 0x0000FF00 ) >> 8; b = ( IpixelValue[idx] & 0x000000FF ); red_pixel_value[r]++; green_pixel_value[g]++; blue_pixel_value[b]++;}

Histogram Equalization tone distribution over the entire range.

- Calculate normalized sum of histogram// rednormalized sum.double scale_factor = 255.0 / IpixelValue.length;for( idx=0; idx < 256; idx++) { sum += red_pixel_value[idx]; red_Nsum[idx] = (int)((sum * scale_factor) + 0.5);}
- 1 * (7/16) = 0.43
- 3 * (7/16) = 1.31
- . . .

Histogram Equalization tone distribution over the entire range.

- Transform input image to output image// LUT inputfor( idx = 0; idx < imageBuffer.getWidth() * imageBuffer.getHeight(); idx++) OpixelValue[idx] = 0xFF000000 | (red_Nsum[r[idx]] << 16) | (green_Nsum[g[idx]] << 8) | (blue_Nsum[b[idx]]);

Original Image tone distribution over the entire range.

Histogram Equalize

Image

Equalization

(256 Level)

Histogram Equalization tone distribution over the entire range.

Saturation adjustment function tone distribution over the entire range.

Saturation image

Saturation histogram

Input / Output

Histogram EqualizationOriginal image tone distribution over the entire range.

Each R, G, B image is histogram equalized

Histogram equalized intensity

Histogram Equalization- /******************************************************** tone distribution over the entire range.
- * Func: histogram_equalize
- * Desc: histogram equalize an input image and write it out Params: buffer - pointer to image in memory * number_of_pixels - total number of pixels in image ********************************************************/
- void histogram_equalize(image_ptr buffer, unsigned long number_of_pixels)
- {
- unsigned long histogram[256]; /* image histogram */
- unsigned long sum_hist[256]; /* sum of histogram elements */

- float scale_factor; /* normalized scale factor */ tone distribution over the entire range.
- unsigned long i; /* index variable */
- unsigned long sum; /* variable used to increment sum of hist */
- /* clear histogram to 0 */
- for(i=0; i<256; i++)
- histogram[i]=0;
- /* calculate histogram */
- for(i=0; i<number_of_pixels; i++)
- histogram[buffer[i]]++;

- /* tone distribution over the entire range. calculate normalized sum of hist */
- sum = 0;
- scale_factor = 255.0 / number_of_pixels;
- for(i=0; i<256; i++)
- {
- sum += histogram[i];
- sum_hist[i] = (sum * scale_factor) + 0.5;
- }
- /* transform image using new sum_hist as a LUT */
- for(i=0; i<number_of_pixels; i++)
- buffer[i] = sum_hist[buffer[i]];
- }

Download Presentation

Connecting to Server..