Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 376b Introduction to Computer Vision 02 / 11 / 2008 Instructor: Michael Eckmann.

Similar presentations


Presentation on theme: "CS 376b Introduction to Computer Vision 02 / 11 / 2008 Instructor: Michael Eckmann."— Presentation transcript:

1 CS 376b Introduction to Computer Vision 02 / 11 / 2008 Instructor: Michael Eckmann

2 Michael Eckmann - Skidmore College - CS 376b - Spring 2008 Today’s Topics Comments/Questions Image acquisition/formation and representation –some definitions quantization problems compression comment frames of reference hole counting algorithm from ch. 1 connected components using union-find masks and application of masks

3 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 Problems in digital images quantization effects converting a continuous range to a discrete range (we'll see one type of problem with this shortly)‏

4 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 some definitions analog image –“infinite” precision in space and intensity value digital image –discrete 2D array of limited precision intensity values grey-scale image –one intensity per pixel (e.g. if one byte intensity range is 0-255)‏ multispectral image –a vector of values at each pixel (for color, usually 3 values representing values for red, green and blue)‏ binary image –each pixel has value 0 or 1

5 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 some definitions labelled image –all pixel values are from some finite alphabet –usually generated from a digital image based on some way to decide which label a pixel gets –example on board picture function –f(x,y) where x and y are spatial variables and f(x,y) is the intensity at x,y

6 from Shapiro & Stockman figure 2.9 in “Computer Vision” quantization problems example

7 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 compression comment run coding is used as part of some compression algorithms to give you a sense of how an image can be losslessly compressed using run length coding –count runs of 0's and runs of 1's example using 1 byte (8 bits) greyscale image –divide up your image into 8 “bit planes” each plane is a binary image run code each binary image note 127 -> 128 problem –solution --- first convert all to a “grey code” which has the property that successive greyscale differences differ in only 1 bit

8 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 frames of reference world (W)‏ object (O)‏ camera (C)‏ real image (F)‏ pixel (I)‏

9 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 frames of reference

10 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 hole counting external corners internal corners these are sufficient as long as the holes are “4-connected” and simple (e.g. no donuts)‏

11 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 hole counting algorithm

12 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 hole counting algorithm

13 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 connected components using union-find A connected components labeling of a binary image B is a labeled image LB in which the value of each pixel is the label of its connected component. The union-find data structure stores a collection of disjoint sets and allows the efficient implementation of union and find. –contains trees where each tree contains one of the disjoint sets –can be stored as an array of parents where index=label and array[index]=parent label union – construct the union of two sets –given the two sets' labels AND the union-find data structure find --- find the “root label” of a set examples on the board of trees and a parent array (fig. 3.9)‏

14 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 connected components using union-find X: label of first set, Y: label of second set, PARENT: array w/ union-find data structure union (X, Y, PARENT)‏ { j:=X k:=Y while (PARENT[j] != 0) { j:=PARENT[j]; } while (PARENT[k] != 0) { k:=PARENT[k]; } if (j != k) then PARENT[k]:=j; } (from algorithm 3.4 in Shapiro/Stockman “Computer Vision”)‏

15 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 connected components using union-find X: label of set, PARENT: array w/ union-find data structure find (X, PARENT)‏ { j:=X while (PARENT[j] != 0) { j:=PARENT[j]; } return j; } (from algorithm 3.3 in Shapiro/Stockman “Computer Vision”)‏

16 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 connected components using union-find Now, the classical connected-components using union-find is: –PASS 1: travel each row from left to right if see a foreground pixel, examine the label of pixel above and to left (if they are labeled, then label the current pixel the lower of the two labels)‏ –if neither above or left pixel has labels (i.e. they are background pixels), then pick a new label for current pixel –if both above and left pixel have different labels, enter the equivalence class into the union-find data structure (perform a union of the two sets)‏ all foreground pixels have been labeled and we have a set of equivalence classes for all labels

17 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 connected components using union-find classical connected-components using union-find (cont.)‏ –PASS 2: relabel the labels of the pixels with the root label of the equivalence class in the union-find data structure (using the find algorithm to determine this root label)‏ see Algorithm 3.6 on page 65 in Shapiro and Stockman Let's do an example on the board.

18 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 masks a mask is a set of pixel positions whose values are weights a mask has an origin, which is usually in the center of symmetrical masks masks are applied to images to alter their pixel values based on the pixels in their neighborhoods –compute a new value by multiplying the corresponding weights in the mask with the values of the image pixels and sum up (and usually divide by sum of weights)‏ –replace pixel value with this new value look at an example on the board

19 Michael Eckmann - Skidmore College - CS 376 - Spring 2008 binary morphology a structuring element is a typically small binary image representing some shape binary image morphological operations –dilation – increase the size of regions –erosion – decrease the size of regions –closing – closes up holes within regions –is a dilation followed by an erosion –opening – get rid of jutting out portions of regions –is an erosion followed by a dilation


Download ppt "CS 376b Introduction to Computer Vision 02 / 11 / 2008 Instructor: Michael Eckmann."

Similar presentations


Ads by Google