0

What would be the best library choice for finding similar parts in images and similarity matching?

Thank you.

1
  • Are you looking for commercial applications? I would suggest you get the demo version of MVTec's Halcon lib. It includes a useful tool for you to quickly try matching. Also Matrox has really great matching solutions (but you have to contact them to get a demo). Else read the other comments :) Commented Mar 29, 2011 at 22:19

4 Answers 4

6

It sounds like the Scale Invariant Feature Transform (SIFT) is probably the algorithm you're really looking for. Offhand, I don't know of any general-purpose image processing library that includes it, but there are definitely standalone implementations to be found (and knowing the name should make Googling for it relatively easy).

Sign up to request clarification or add additional context in comments.

2 Comments

I'd suggest you to search the way described by Jerry, you may find some free implementations in C# of SIFT and SURF (Speeded Up Robust Features, inspired by SIFT with better performances) which let you do what you are expecting.
OpenCV is a general-purpose C++/Python image processing library that includes SIFT and SURF implementations. Ports of OpenCV exist for various languages, such as the popular OpenCVSharp for C#.
2

ImageJ fastest image processing library in Java.

Comments

2

OpenCV is certainly a solid choice as always.

That said, VLFeat is also very good. It includes many popular feature detectors (including SIFT, MSER, Harris, etc.) as well as clustering algorithms like (kd-trees and quickshift). You can piece together something like a bag of words classifier using that very quickly.

While SIFT is certainly a solid general purpose solution, it actually is a pipeline composed of a feature detector (which points are interesting in the image), a feature descriptor (for each interesting point in the image, what's a good representation), and a feature matcher (given a descriptor and a database of descriptors, how do I determine what is the best match).

Depending upon your application, you may want to break apart this pipeline and swap in different components. VLFeat's SIFT implementation is very modular and lets you experiment with doing so easily.

Comments

0

Never did image processing, but I've heard from friends OpenCV is quite good, they usually use C++

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.