4

I am doing an ancient coins recognition system using matlab. What I have done so far is:

  1. convert to grayscale
  2. remove noise using Gaussian filter
  3. contrast enhancement
  4. edge detection using canny edge detector.

Now I want to extract feature for classification. Features I thought to select are roundness, area, colour, SIFT and SURF. My problem is how I can apply SIFT and SURF algorithms to my project. I couldn't find built-in functions for both.

halfer
  • 19,824
  • 17
  • 99
  • 186
  • 2
    Wikipedia articles on SIFT and SURF list several implementations: http://www.maths.lth.se/matematiklth/personal/petter/surfmex.php http://www.mathworks.com/matlabcentral/fileexchange/28300 http://www.vlfeat.org/ – sastanin Apr 05 '11 at 12:40
  • @jetxee Thanks a lot. I'll go through the URLs u have provided. I don't have to change any code for my images do I? I just can include those libraries and use right? – Nadeeshani Jayathilake Apr 05 '11 at 12:51

3 Answers3

6

You can find SIFT as a C implementation with MATLAB bindings at: http://www.vlfeat.org/index.html

bjoernz
  • 3,852
  • 18
  • 30
  • Thanks a lot. Can you please answer for this question? These SIFT implementations are like libraries that we are using for an example when coding c++ programming, we are including iostream library right? But we don't have to change any code which is inside that library. So, I can just use this SIFT implementation as a library and do not need to change any code for my images right? Is that sift implementation working for any image? – Nadeeshani Jayathilake Apr 05 '11 at 12:56
  • 1
    VLFeat is a C library, that you can use from C++. The images have to be stored as one `float` per pixel. You can read the C API documentation here: http://www.vlfeat.org/api/sift_8h.html – bjoernz Apr 05 '11 at 13:13
2

For anyone else coming across this thread as I did, I noticed the implementation at http://www.vlfeat.org/index.html was far more than I required and also fairly hard to adjust to my code. The following link; http://robwhess.github.io/opensift/, has an implementation of just the SIFT algorithm accompanied with an example executable, with the source code available (unlike http://www.cs.ubc.ca/~lowe/keypoints/ which only has the sift binary executable).

1

you can find a matlab implementation of SIFT features here: http://www.cs.ubc.ca/~lowe/keypoints/

Dirk
  • 1,789
  • 2
  • 21
  • 31
  • Thanks a lot. Can that SIFT implementation be used by any project? I meant... don't I have to change it to suit for my project? Or I can directly use it as a library to find SIFT features in my images right? – Nadeeshani Jayathilake Apr 05 '11 at 12:47
  • 3
    @Dirk, sorry, but not true, Lowe provides a compiled binary and Matlab code to read in the keypoints from a text file produced by that same binary. – Maurits Sep 15 '11 at 22:40
  • @Maurits you are right, implementation was the wrong term... it's more like a wrapper... – Dirk Oct 14 '12 at 18:05