240 likes | 348 Views
Statistical Operations. Gray-level transformation Histogram equalization Multi-image operations. Histogram. If the number of pixels at each gray level in an image is counted (may use the following code fragment) for (row=0; row<rowmax; roww++) for (col=0; col=colmax; col++) {
E N D
Statistical Operations • Gray-level transformation • Histogram equalization • Multi-image operations 240-373 Image Processing
Histogram • If the number of pixels at each gray level in an image is counted (may use the following code fragment) for (row=0; row<rowmax; roww++) for (col=0; col=colmax; col++) { count[image[row,col]]++; } 240-373 Image Processing
Histogram • The array “count” can be plotted to represent a “histogram” of the image as the number of pixels at particular gray level • The histogram can yield useful information about the nature of the image. An image may be too bright or too dark. 240-373 Image Processing
Histogram Illustration Histogram 10 9 1 2 3 2 3 2 0 0 1 2 1 4 4 4 2 1 2 1 1 2 1 2 1 2 5 4 2 1 4 0 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 240-373 Image Processing
Global Attenuation in Brightness • To alter the brightness of an image by adding or subtracting all pixel values with a constant for (row=0; row<rowmax; roww++) for (col=0; col=colmax; col++) { image[row,col] += constant; } 240-373 Image Processing
Thresholding • Use: • To remove the gray level trends in an image • To make gray level more discrete • To segment or split an image into distinct parts • Operation: • setting all gray levels below a certain level to “zero”, and above a certain level to a maximum brightness 240-373 Image Processing
Code for Thresholding for (row=0; row<rowmax; roww++) for (col=0; col=colmax; col++) { if (image[row,col] > threshold) image[row,col] = MAX; else image[row,col] = MIN; } 240-373 Image Processing
Thresholding Errors • Rarely is it possible to identify a perfect gray level break, what we want to be background pixels become foreground or vice versa • Type 1: not all pixels caught that should be included • Type 2: some pixels caught should not be included in the group 240-373 Image Processing
An image before and after thresholding 240-373 Image Processing
Bunching (Quantizing) • Use: • to reduce the number of different gray level in an image • to segment an image • to remove unwanted gray level degradation • Operation: • Close gray levels are combined, thus removing unwanted variations in data 240-373 Image Processing
Bunching (Quantizing) • Method 1: inspecting histogram and combining close group into single gray level • Method 2: identifying a set of gray levels allowed in the final image, then changing the gray level in every pixel to its nearest allowed value 240-373 Image Processing
Bunching Example 0 **** 1 ** 2 ***** 3 ********* 4 ***** 5 ***** 6 ***** 7 ***** 8 ********* 9 *** 0 ****** 1 2 3 ******************* 4 5 6 *************** 7 8 9 ************ 240-373 Image Processing
Bunching Code for (row=0; row<rowmax; row++) for (col=0; col<colmax; col++) { image[row,col] = bunchsize*((int)image[row,col]/bunchsize); } bunchsize = number of levels to be grouped into one 240-373 Image Processing
Splittings • Use: • to increase the different two groups of gray levels so that the contrast between segments compose of one group of the other is enhanced • Operation: • rounding the gray levels up if they are in the range and down if they are in another 240-373 Image Processing
Splitting Example • The characters on a car number-plate are at gray level 98 • The background of the characters is at gray level 99 • Pushing 98 down to 80 and pushing 99 up to 120 will give the picture a better contrast around the number plate Question: How to find a good splitting level? 240-373 Image Processing
Automatic Selection of Splitting Level • Use: • to find the best gray level for splitting--usually for thresholding to black and white • Operation: • Let 240-373 Image Processing
Automatic Selection of Splitting Level • Let P=NxM = the number of pixels under consideration • Let m(g) = mean gray level for only those pixels containing gray level between zero and g, i.e. If the maximum number of gray level is G (G=0,…,G-1) then evaluate the following equation (T = splitting threshold) A B 240-373 Image Processing
Example Histogram f(g) t(g) g.f(g) Sg.f(g) m(g) A B A*B 0 **** 4 4 0 0 0 0.08 23.04 0.18 1 ** 2 6 2 2 0.3 0.13 20.25 2.83 2 ***** 5 11 10 12 1.1 0.27 13.69 3.70 3 ********* 9 20 27 39 2 0.63 7.84 4.94 4 ***** 5 25 20 59 2.4 0.93 5.76 5.36 5 ***** 5 30 25 84 2.8 1.36 4.00 5.44 6 ***** 5 35 30 114 3.3 2.06 2.25 4.64 7 ***** 5 40 35 149 3.7 3.33 1.21 4.03 8 ********* 9 49 72 221 4.5 16.33 0.09 1.47 9 *** 3 52 27 248 4.8 -INF- T = max(A*B) - 1 = 4 240-373 Image Processing