Graphs are a very powerful data structure for many tasks in image analysis. If both known models and unknown objects are represented by graphs, the detection or recognition problem becomes a problem of graph matching. In this paper, we first review different methods for graph matching. Then we introduce a new family of exact and errortolerant graph matching algorithms that have a number of interesting properties. The algorithms are particularly efficient if there is a large number of model graphs to be matched with an unknown input graph. Moreover, they allow the incremental updating of a database of known models. This property supports the application of graph matching in a machine learning context. As an example, we show a 2-D shape recognition system based on graph matching that is able to learn new shapes.