Image Processing1 Statistical Operations Gray-level transformation Histogram equalization Multi-image operations
Image Processing2 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]]++; }
Image Processing3 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.
Image Processing4 Histogram Illustration Histog ram
Image Processing5 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; }
Image Processing6
7
8
9
10 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
Image Processing11 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; }
Image Processing12
Image Processing13 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
Image Processing14 An image before and after thresholding
Image Processing15 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
Image Processing16 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
Image Processing17 Bunching Example 0 **** 1 ** 2 ***** 3 ********* 4 ***** 5 ***** 6 ***** 7 ***** 8 ********* 9 *** 0 ****** ******************* *************** ************
Image Processing18 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
Image Processing19 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
Image Processing20 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?
Image Processing21 Automatic Selection of Splitting Level Use: –to find the best gray level for splitting--usually for thresholding to black and white Operation: –Let
Image Processing22 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) AB
Image Processing23 Example Histogramf(g)t(g)g.f(g) g.f(g) m(g)ABA*B 0 **** ** ***** ********* ***** ***** ***** ***** ********* *** INF- T = max(A*B) - 1 = 4