How to use Chamfer Matching algorithm for finding 'Similar Images'

bloodfire1004 picture bloodfire1004 · Aug 9, 2010 · Viewed 16.8k times · Source

I would like to ask for more information on how Chamfer Matching algorithm (an edge matching algorithm) can be used to find 'similar' images. I would like to know if it is possible to place a 'score' for the matched results.

Answer

Rudi picture Rudi · Jun 3, 2011

The Chamfer Matching Algorithm basically calculates the distance (dis-similarity) between two images. The basic idea is to:

  1. Extract the edge/contours of a query image as well as target image.
  2. Take one point/pixel of contour in query image and find the distance of a closest point/pixel of contour in target image.
  3. Sum the distances for all edge points/pixels of query image.

This gives the Chamfer Distance i.e. a value of dis-similarity between two images. The lower the value better the result. However, you have to take care of scaling, and sliding windows as well if target image is larger than query image which is often the case.

You could find working exampling on opencv\modules\contrib.