A Vertex Chain Code Approach for Image Recognition

Similar documents
The Evolution and Trend of Chain Code Scheme

Classification and Generation of 3D Discrete Curves

Code Transformation of DF-Expression between Bintree and Quadtree

PERFORMANCE ANALYSIS OF CHAIN CODE DESCRIPTOR FOR HAND SHAPE CLASSIFICATION

Practical Image and Video Processing Using MATLAB

Edit Distance for Ordered Vector Sets: A Case of Study

Robust Shape Retrieval Using Maximum Likelihood Theory

However, m pq is just an approximation of M pq. As it was pointed out by Lin [2], more precise approximation can be obtained by exact integration of t

Digital image processing

Hierarchical Representation of 2-D Shapes using Convex Polygons: a Contour-Based Approach

CLASSIFICATION OF BOUNDARY AND REGION SHAPES USING HU-MOMENT INVARIANTS

Heuristic Algorithm to Generate Modified Freeman Chain Code from Thinned Binary Image

EE 584 MACHINE VISION

Edge and local feature detection - 2. Importance of edge detection in computer vision

Image Acquisition + Histograms

ROTATION INVARIANT TRANSFORMS IN TEXTURE FEATURE EXTRACTION

Which n-venn diagrams can be drawn with convex k-gons?

2 ATTILA FAZEKAS The tracking model of the robot car The schematic picture of the robot car can be seen on Fig.1. Figure 1. The main controlling task

Boundary descriptors. Representation REPRESENTATION & DESCRIPTION. Descriptors. Moore boundary tracking

Optimization of Bit Rate in Medical Image Compression

Identifying Layout Classes for Mathematical Symbols Using Layout Context

Machine vision. Summary # 6: Shape descriptors

Pattern recognition systems Lab 3 Hough Transform for line detection

Color-Based Classification of Natural Rock Images Using Classifier Combinations

UPEM Master 2 Informatique SIS. Digital Geometry. Topic 2: Digital topology: object boundaries and curves/surfaces. Yukiko Kenmochi.

CPS 616 TRANSFORM-AND-CONQUER 7-1

Direction-Length Code (DLC) To Represent Binary Objects

Chapter 11 Representation & Description

EE795: Computer Vision and Intelligent Systems

Document Image Restoration Using Binary Morphological Filters. Jisheng Liang, Robert M. Haralick. Seattle, Washington Ihsin T.

Object Shape Recognition in Image for Machine Vision Application

Invariant Recognition of Hand-Drawn Pictograms Using HMMs with a Rotating Feature Extraction

Digital Image Processing

A Genus Bound for Digital Image Boundaries

Tilings of the Euclidean plane

Accelerating Pattern Matching or HowMuchCanYouSlide?

Skeletonization Algorithm for Numeral Patterns

Segmentation and Object Detection with Gabor Filters and Cumulative Histograms

Compressing 2-D Shapes using Concavity Trees

Morphological Image Processing

Binary Relations McGraw-Hill Education

morphology on binary images

A Connection between Network Coding and. Convolutional Codes

An Algorithm for Calculating Objects Shape Features in Binary Images

Detection of a Single Hand Shape in the Foreground of Still Images

1. INTRODUCTION. AMS Subject Classification. 68U10 Image Processing

Lecture 8 Object Descriptors

CS443: Digital Imaging and Multimedia Binary Image Analysis. Spring 2008 Ahmed Elgammal Dept. of Computer Science Rutgers University

On a fast discrete straight line segment detection

Section 18-1: Graphical Representation of Linear Equations and Functions

CONSTRUCTIONS OF QUADRILATERAL MESHES: A COMPARATIVE STUDY

Two Image-Template Operations for Binary Image Processing. Hongchi Shi. Department of Computer Engineering and Computer Science

Corner Detection using Difference Chain Code as Curvature

1 Affine and Projective Coordinate Notation

Slops and Distances for Regular Shape Image Recognition

EECS490: Digital Image Processing. Lecture #23

Topic 6 Representation and Description

Lecture notes: Object modeling

Connected components - 1

Processing of binary images

CoE4TN4 Image Processing

Lecture 18 Representation and description I. 2. Boundary descriptors

Basic Algorithms for Digital Image Analysis: a course

Connectivity Preserving Digitization of Blurred Binary Images in 2D and 3D

GENERALIZING THE HOUGH TRANSFORM TO DETECT ARBITRARY SHAPES. D. H. Ballard Pattern Recognition Vol. 13 No

Use of Chain Code Histogram Method to Quantify Airborne Particle Shapes

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

TAGUCHI TECHNIQUES FOR 2 k FRACTIONAL FACTORIAL EXPERIMENTS

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

Chapter 3 Numerical Methods

AN ALGORITHM USING WALSH TRANSFORMATION FOR COMPRESSING TYPESET DOCUMENTS Attila Fazekas and András Hajdu

MORPHOLOGICAL BOUNDARY BASED SHAPE REPRESENTATION SCHEMES ON MOMENT INVARIANTS FOR CLASSIFICATION OF TEXTURES

PATTERN CLASSIFICATION AND SCENE ANALYSIS

A Compressed Representation of Mid-Crack Code with Huffman Code

6. Concluding Remarks

Texture Segmentation by Windowed Projection

Planar Symmetry Detection by Random Sampling and Voting Process

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Lecture 14 Shape. ch. 9, sec. 1-8, of Machine Vision by Wesley E. Snyder & Hairong Qi. Spring (CMU RI) : BioE 2630 (Pitt)

Color Image Segmentation

On Skeletons Attached to Grey Scale Images. Institute for Studies in Theoretical Physics and Mathematics Tehran, Iran ABSTRACT

Application of optimal sampling lattices on CT image reconstruction and segmentation or three dimensional printing

UNIT 3 EXPRESSIONS AND EQUATIONS Lesson 3: Creating Quadratic Equations in Two or More Variables

Detection of objects in moving images and implementation of the purification algorithm on Analog CNN and DSP processors

Generating All Simple Convexly-Drawable Polar Symmetric 6-Venn Diagrams

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming

Texture Segmentation and Classification in Biomedical Image Processing

Lecture 3.2 Methods for Structured Mesh Generation

Digital Image Fundamentals II

Symmetry Based Semantic Analysis of Engineering Drawings

Determining Differences between Two Sets of Polygons

Mirrors of reflections of regular maps

Morphological track 1

Edge Detection Using Morphological Method and Corner Detection Using Chain Code Algorithm

Introduction to Complex Analysis

The packing problem: A divide and conquer algorithm on cellular automata

Minimum-Area Rectangle Containing a Set of Points

Transformations Geometry

Mathematics and Symmetry: A Bridge to Understanding

Transcription:

A Vertex Chain Code Approach for Image Recognition Abdel-Badeeh M. Salem, Adel A. Sewisy, Usama A. Elyan Faculty of Computer and Information Sciences, Assiut University, Assiut, Egypt, usama471@yahoo.com, http://www.aun.eun.eg Abstract Shape-of-object representation has always been an important topic in image processing and pattern recognition. This work deals with representation of shape based on a new boundary chain code, and uses this chain code to recognize the object. Chain code techniques are widely used to represent an object because they preserve information and allow considerable data reduction. In this paper the vertex chain code (VCC) is presented, this chain code is based on E. Bribiesca for shapes composed of regular cells. Also, the paper discusses the capabilities of the VCC in recognizing objects, the results show that, the VCC recognizes images better than the classical methods. Keywords: Image processing, Pattern recognition, Computer vision, String edit distance. 1 Introduction The first approach for representing digital curves using chain code was introduced by Freeman in 1961 [4]. Classical methods for processing chains are referred to [5]. Freeman [5] states that in general, a coding scheme for line structures must satisfy three objectives: (1) it must faithfully preserve the information of interest; (2) it must permit compact storage and convenient for display; and (3) it must facilitate any required processing. Also the VCC comply with these three objects, and has some important differences. E. Bribiesca [1] states some important characteristics of the VCC: (1) The VCC is invariant under translation and rotation, and optionally may be invariant under starting point and mirroring transformation. (2) Using the VCC it is possible to represent shapes composed of triangular, rectangular, and hexagonal cells. (3) The chain elements represent real values not symbols such as other chain codes, are part of the shape, indicate the number of cell vertices of contour nodes, may be operated for extracting interesting shape properties. (4) Using the VCC it is possible to obtain relations between the bounding contour and interior of the shape. In this paper we will compute the chain code of an image using the classical methods and the VCC method. The images considered here are binary images with outer contour. In other words there are not any holes in the objects. Also, we will show how you can use these chain codes to recognize to the object. This paper is organized as follows. Section (2) presents a new method for extracting the contour of a binary image. Section (3) shows a simple example to compute the classical and the vertex chain code. Section (4) presents how you can use the string edit distance to compare your chains to measure the similarity between the images. Section (5) we use the χ 2 method to solve the scaling problem. Finally, Section (6)wegivesomeconclusions. 2 Boundary extraction The first step of the construction of the chain code is to extract the boundary of the image. Chains can represent the boundaries or contours of any discrete shape composed of regular cells. In the content of this work, the length l of each side of cells is considered equal to one. These chains represent closed boundaries. Thus, all chains are closed. Extracting the contour depends on the connectivity. In the content of this paper we use pixels with four-connectivity. The simplest contour following algorithms were presented by Papert [10] and Duda and Hart [9]. Thus using these algorithms it is possible to represent shape contours by only two states: left turn (represented by 1") and right turn (represented by 0"). The abovementioned process produces a chain composed of only binary elements. Figure (1) illustrates the contour following on an image composed of pixels. This contour was obtained according to the following algorithm: 1

Figure 4: Three simple binary images. Figure 1: Example of a contour following on a digital figure. Figure 2: Directions of the neighbors:(a) 4-connected; (b) 8-connected. Scan the picture until a figure cell is encountered. Then: If you are in a figure cell turn left and take a step. Ifyouareinagroundcellturnrightandtakea step. Terminate when you are within one cell of the starting point. In this paper we proposed a new algorithm to find the contour of a binary image and use this contour to obtain the chain code. Since we use pixels with 4-connectivity, the four neighbors of any point can be represented by directions as illustrated in figure (2a). To find the contour of a binary image we apply the following algorithm: Step 1. For all pixels with value 0 (black) in the image, set the pixel that has the direction 2 in 4-connected to 0. Figure 5: The three steps for finding the contour of the binary images shown in figure (4). represents Step 2 to find the contour of a binary image, and figure (5c) shows Step 3 of the algorithm. Note that, we can apply this algorithm to real images to obtain their contours. Figure (6) shows a tree (a) leaf and its contour (b). Also, the previous algorithm can apply to obtain the contour of the binary images even if these images with holes. Figure (7) shows the contour of an image with two holes. Step 2. In the new image (i.e., image obtained from Step 1), also, for all pixels with value 0, set the pixel that has the direction 1 in 4-connected to 0. Step 3. Remove the old pixels (in the original image) that have 8-connected as shown in figure (2b) and do not satisfy the conditions shown in figure (3). Example: if we apply the previous algorithm to the three images shown if figure (4), we will obtain the contour of the images as depicted in figure (5). Figure (5a) shows Step 1 of the algorithm, figure (5b) Figure 6: A tree leaf: (a) the original image; (b) contour of the image. 2

Figure 3: Four conditions to remove the old pixels. Figure 7: Image with two holes: (a) original image; (b) its contour. Figure 8: The classical and the vertex chain code: (a) a shape composed of pixels; (b) the same shape; (c) the elements of the classical chain code; (d) the elements of the VCC. 3 The classical and the vertex chain code Chains can represent the boundaries or contours of any image. The classical (Freeman) chain is defined as the direction of the object s contour from starting point [8], while an element of the VCC indicates the number of cell vertices, which in touch with the bounding contour of the shape in that element position [1]. Figure (8a) presents a shape composed of pixels with its directions. Figure (8b) shows the same shape with its VCC elements. Figure (8c) shows the classical chain code of the shape. Figure (8d) shows the VCC of the shape. Note that when we are using pixels; the VCC has only three different numbers of cell vertices for the bounding contour: 1, 2, and 3 [1]. The classical and the vertex chain code may be invariant under starting point and rotation by using the concept of the shape number. The shape number of the classical chain can be derived from the chain code by taking the difference of the elements of the chain code in counterclockwise direction to obtain the difference code, then rotate the digits of the difference code until the number is minimum to obtain the shape number. The shape number of the VCC can be obtained directly by rotating the digits of the chain until the number is minimum. The difference code of the classical chain code shown in figure (8c) is 10101131, and its shape number is 0101131 1. Also, the shape number of the VCC shown in figure (8d) is 11212113. Note that, the shape number is invariant under rotation. It means that, if the object is rotated with k Π 2 where k is an integer, the shape number is the same. 4 String edit distance and shape comparison String matching is one of the basic techniques in structural pattern recognition. In particular, string edit distance can be used to measure the similarity of objects which are represented in terms of strings. String edit distance is based on a set of edit operations, for example, the insertion, deletion, and substitution of individual symbols in a string. Often a cost is assigned to each edit operation to model its likelihood of occurrence. Given a set of edit operations together with their costs, the edit distance d(x, y) of two strings, x and y, is defined as the minimum cost taken over all sequences of edit operations that transform x into y. String edit distance has been successfully applied to a number of problems in pattern recognition, for example, two-dimensional shape recognition [3, 11, 2], symmetry analysis [6]. Let A be a finite alphabet of symbols, and ɛ denote the empty symbol. An edit operation is any of the following: a b, a ɛ, andɛ a, wherea, b A. Wecalla b a substitution, a ɛ a deletion, and ɛ a an insertion. If a = b then a b is called an identical substitution; otherwise it is termed non- 3

identical substitution. A cost function is a function that assigns a non-negative real number to each edit operation. We write c(a b),c(a ɛ), andc(ɛ a) to denote the cost of substitution a b, a ɛ deletion, and insertion ɛ a, respectively. The standard algorithm for computing d(x, y), wherex = x 1...x n and y = y 1...y m, is based on dynamic programming [7]. It computes the elements of a two-dimensional edit matrix D(i, j) of dimension (n +1) (m +1) using the following simple algorithm: Step 1. D(0, 0) = 0. Step 2. For j =1,..., m D(0,j)=D(0,j 1) + c(ɛ y j ). Step 3. For i =1,..., n D(i, 0) = D(i 1, 0) + c(x i ɛ). Step 4. For i =1,..., n For j =1,..., m D(i 1,j 1) + c(x i y i ) D(i, j) =min D(i 1,j)+c(x i ɛ). D(i, j 1) + c(ɛ y i ) It has been shown that d(x, y) =D(n, m). Furthermore, from the edit matrix the sequence of edit operations that transform x into y with minimum cost can be recovered. In order to illustrate the capabilities of the VCC, we present some results of shape comparison. Figure (9) shows simple three shapes composed of pixels. The chains of these shapes were obtained using the concepts of classical and the vertex chain code. Also, the difference code and the shape number of each shape are obtained. Table 1 presents the classical and the vertex chains of the shaps shown in figure (9). Now, how you compare these shape numbers (strings) to measure the similarity of the three images. We will use the string edit distance to measure the similarity of these three objects. Let d c (A, B) be the string edit distance between the classical shape numbers of image A and image B, d c (A, C), and d c (B,C) are the string edit distances between the classical shape numbers of image A and image C, and image B and image C, respectively. Moreover, let d v (A, B), d(a, C), and d(b,c) denote the string edit distances of the VCC for the same shapes in figure (9). Now, if we apply the previous algorithm to compute these distances, we note that d c (A, B) =10, d v (A, B) =4; d c (A, C) =12, d v (A, C) = 10; d c (B,C) =6, d v (B,C) =6. Where we assume that { 2, if a b =2 c(a b) = 1, otherwise. (1) (2) The cost of deletion c(a ɛ) =1,andthecostof insertion c(ɛ a) =1. Since image A is more similar to image B than it is to image C. Then the string edit distance between the shape numbers of image A and image B is the smallest number. From Eq. (1), we not that the VCC demonstrates that image A and B do form the most similar pair of images, since d v (A, B) is the smallest number. Also, image B and C are more similar than images A and C. On the other hand, the classical chain code cannot be used for discriminating between the images to determine their visual similarity. Now, we will use the string edit distance to solve a practical problem (recognition of tree leaves). Figure (10a) shows the stored leaves images and figure (10b) present the test image used. We note that, image F (test image) is more similar to image A than it is to image B, C, D, ande. d c (A, F ) = 140, d v (A, F ) = 27; d c (B,F) = 996, d v (B,F) = 996; d c (C, F ) = 138, d v (C, F ) = 166; d c (D, F) = 142, d v (D, F) = 162; d c (E,F) = 162, d v (E,F) = 165. (3) The calculated distances for the tree leaves are shown in Eq. (3). Using the VCC, we notice that image F is more similar to image A. The third example compares the classical and the vertex chain codes using images of airplanes. Figure (11a) shows the stored airplanes image used and figure (11b) shows a test image. We note that, image D (test image) is more similar to image A than it is to image B and image C. Also, the test image is more similar to image B than image C. d c (A, D) =30, d v (A, D) = 30; d c (B,D) = 170, d v (B,D) = 72; d c (C, D) = 146, d v (C, D) =98. (4) The calculated distances for the airplanes are shown in Eq. (4). Using the VCC, we notice that image D is far away from image B and C. Ascanbe seen, the VCC produces more realistic results. 5 Scaling problem The chain code is translation invariant and it is not scale invariant. Figure (12) shows how the chain code is varying if the shape is scaling. Nevertheless the shape code is not scale invariant. If the elements of the chain code are multiplied n times, the object will enlarge k times depending on n. But the shape number has not got this feature. On the other hand, if the chain code is transformed back from the shape number anyhow, then the chain code will be as original chain code. It means, that if you have some different chain codes of an object, you have to transform these into a shape number and back and the solution will be the same chain. 4

Figure 9: Three simple images. Table 1: The classical and the vertex chains for the shapes in figure (9). A B C The classical chain code 011001121122323032230303 011001121122333223030 011001121122333333 The difference code 103010130101311330113131 1030101301010030113131 103010130101000001 The shape number 010130101311330113131103 0030113131103010130101 000001103010130101 The VCC 112321213212131133211313 1123212132121223211313 112321213212122222 The shape number 112321213212131133211313 1123212132121223211313 112321213212122222 Figure 10: Tree leaves images: (a) the stored images; (b) test image. 5

Figure 11: Airplanes images: (a) the stored images; (b) test image. Now the problem can be defined. Let two objects without holes f(x, y) and g(x, y). The classical chain code of image f is c f and the classical chain code of image g is c g. The question is the following: can the binary object f(x, y) be matched to the object g(x, y) with any scaling or rotation by k π 2, where k is an integer. 5.1 The χ 2 method The χ 2 testisacommonmethodtoverifyiftwogiven set of data belongs to the same of different distribution. Compute the original chain codes c f and c g. Then look on these codes as two random variables and the elements of these codes as samples of these random variables. Detail the random variable ξ with the c f and let the sample be (ξ 1,..., ξ m )withm elements. Detail the random variable η with c g as well. Let the sample be (η 1,..., η n )withn elements. Examine the homogenity of these variables with the χ 2 test, because if one of these chain codes differs only from the other chain code only in scaling, then they can be considered as two samples of one population. The set of the values of ξ and η is the set {0, 1, 2, 3}, because these are classical chain codes. Divide the values of ξ and η into four sets. Let v 0 is the number of 0" in ξ, v 1 is the number of 1" in ξ, v 2 is the number of 2" in ξ, andv 3 is the number of 3" in ξ. Also, let u 0, u 1, u 2,andu 3 are the number of 0", 1", 2", and 3" in η, respectively. Then the χ 2 is given by: χ 2 = m.n 3 R i (5) i=0 where { ( v i m R i = u i n )2 v i + u, if v i u i 0 i (6) 0, otherwise It can be proven that if m and n are large enough and the codes can be matched together anyhow, then Figure 12: Scaling problem: (a) a simple shape; (b) the shape after scaling; (c) the classical chain of the image in (a); (d) the classical chain of the image in (b). the distribution of test statistic χ 2 is approximately a χ 2 distribution with 4 degree-of-freedom. Example: the original chain code of the image in figure (12a) is 0 0 1 12323andtheoriginalchain code of the image in figure (12b) is 0 0 0 0 1 1 1 1 22332233. Now,letξ =(0, 0, 1, 1, 2, 3, 2, 3) and η =(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3). Then: and So, the χ 2 is v 0 =2, u 0 =4; v 1 =2, u 1 =4; v 2 =2, u 2 =4; v 3 =2, u 3 =4; R 0 =0 R 1 =0 R 2 =0 R 3 =0 χ 2 =0 (7) From Eq. (7), we note that the χ 2 value is zero (i.e., figure (12b) is a scaling to figure (12a). From this 6

R 0 =1.7147 10 8 R 1 =2.1745 10 8 R 2 =1.7147 10 8 R 3 =2.1745 10 8 But the χ 2 between the VCC is where m = 431,n= 1008, χ 2 = 124.04 (11) Figure 13: χ 2 of the fig leaf: (a) the fig leaf; (b) the fig leaf after scaling. examplewecanusetheχ 2 test to solve the scaling problem. Also, we can compute the χ 2 between Any two VCC. Where the χ 2 is given by χ 2 = m.n 3 R i (8) i=1 and the other notations (R i,v i, and u i )arethe same. The VCC of figure (12a) is 11212113,andthe VCCoffigure(12b)is1212221222121232. Now if we compute the χ 2, we will obtain where and χ 2 =3 (9) v 1 =5, u 1 =5; v 2 =2, u 2 = 10; v 3 =1, u 3 =1; R 1 =0.0097656 R 2 =0.011719 R 3 =0.0019531 From Eq. (9), we note that the χ 2 of VCC shown in figure (12) is large. Which means the classical chain code gives better results in the scaling problem. Figure (13) show a practical example to solve the problem of scaling. Since we use a fig" leaf. The χ 2 between the classical chain codes of the fig" leaf is where m = 431,n= 1008, and χ 2 =0.033715 (10) v 0 = 121, u 3 = 281; v 1 =94, u 1 = 223; v 2 = 121, u 2 = 218; v 3 =94, u 3 = 223; and v 1 = 125, u 1 = 135; v 2 = 185, u 2 = 742; v 3 = 121, u 3 = 131; R 1 =9.3714 10 5 R 2 =10.159 10 5 R 3 =9.0219 10 5 From Eqs. (10) and (11), we note that the classical chain code gives better results from the VCC. 6 Conclusion In this paper, a new method for extracting the contour of binary images is presented. The new method can apply to any binary image with or without holes. The extracted contour is used to derive the chain code of the image. The classical (Freeman) and a new chain code for shapes composed of finite number of cells is defined. The definition of the new chain code (termed vertex chain code, VCC) is valid for shapes composed of triangular, rectangular, and hexagonal cells. The VCC preserves information and allows considerable data reduction. This chain code is invariant under translation and rotation, and optionally, under starting point and mirroring transformation. To illustrate the capabilities of the VCC, we present some examples of shape comparison and image recognition for binary images of tree leaves and airplanes images. Where, we use the string edit distance to measure the similarity between the chain codes. The results demonstrate that the VCC recognizes the shapes better than the classical chain code. Finally, we use the χ 2 method to solve the problem of scaling. Since the chain code is not scale invariant. In the scaling problem the classical chain code gives better results. References [1] E. Bribiesca. A new chain code. Pattern Recognition, 32:235 251, 1999. 7

[2] H. Bunke and M. Zumbühl. Acquisition of 2D shape models from scenes with overlpping objects using string matching. Pattern Analysis and Applications, 2:2 9, 1999. [3] H. Bunke and U. Bühler. Applications of approximate string matching to 2D shape recognition. Pattern Recognition, 26:1797 1812, 1993. [4] H. Freeman. On the encoding of arbitrary geometric configurations. IRE Trans. Electron. Comput. EC, 10:260 268, 1961. [5] H. Freeman. Computer Processing of line drawing images. ACM Comput. Surveys, 6:57 97, 1974. [6] J. Llados, H. Bunke, and E. Marti. Finding rotational symmetries by cyclic string matching. Pattern Recognition Letters, 18:1435 1442, 1997. [7] R. Wagner and M. Fischer. The string-to-string correction problem. Journal of the ACM, 21:168 173, 1974. [8] R.C. Gonzales and R.E. Woods. Digital image processing, second edition. Addison-Wesley, 2002. [9] R.O. Duda and P.E. Hart. Pattern classification and scene analysis. Wiley, New York, 1973. [10] S. Papert. Uses of technology to enhance education. Technical Report 298, AI Lab, MIT, 1973. [11] S.W. Chen, S.T. Tung, C.Y. Fang, S. Cherng, and A. Jain. Extended attributed string matching for shape recognition. Computer Vision and Image Understanding, 70:36 50, 1998. 8