# image matching algorithms

castironpi at gmail.com castironpi at gmail.com
Mon Mar 10 07:53:31 CET 2008

```On Mar 10, 1:32 am, "Daniel Fetchinson" <fetchin... at googlemail.com>
wrote:
> Hi all,
>
> There are a number of free tools for image matching but it's not very
> easy to decipher the actual algorithm from the code that includes db
> management, GUI, etc, etc. I have my own image database and GUI so all
> I need is the actual algorithm preferably in pseudo code and not in
> the form of a research paper (from which I also found a lot but since
> I'm not that much interested in the actual science of image
> recognition this seems like an over kill).
>
> My understanding of image matching is that it works by first
> calculating N real numbers for an image and defining a metric for
> pairs of N-tuples. Images are similar if their distance (defined by
> the metric) is small.
>
> The various free tools differ by their chosen optimization paths and
> their degree of specialization. My preference would be,
>
> 1. Doesn't really matter how long it takes to compute the N numbers per image
> 2. Lookups should be fast, consequently N should not be too large (I guess)
> 3. It should be a generic algorithm working on generic images (everyday photos)
> 4. PIL should be enough for the implementation

http://www.idi.ntnu.no/~blake/gbimpdet.htm
"High level features carry information about an image in an abstracted
or propositional form"

It says it constructs a graph about the image's features.  Here's the
graph:

Graph components                            Notes

cg(62,86):cr(255,153,153):pl(-204,574,792,10353)]]        with
attributes

[[5][@rep=   1 ]]                                      <- Relation
and strength

[B[@id=crot3.77;ext:sqr:aa(199):mm(17759,244,1,0):     <- Trailing
node
cg(98,77):cr(153,153,255):pl(966,2,258,-79198)]]\$         with
attributes

It doesn't say what corner cases it leaves.  "seem to provide" and
"seems to be extremely flexible".  I like this feature:

- the equation of the best fitting plane Ax+By+Cz+D=0 to the range
image data masked by the current region;

Where does that get you?

```