Remark. This implementation is considered legacy code and is superseded by VLFeat.

This is a MATLAB/C implementation of the SIFT detector and descriptor. It is customizable and features a decomposition of the algorithm in several reusable M and MEX files. This implementation produces interest points and descriptors which are very similar to David Lowe's implementation.

Remark. This code is well suited to study, understand and modify SIFT, but it is not particularly fast. If you need to compute lots of features, you might be interested in this lightweight C++ version, which does not require MATLAB and comes with a flexible command line interface.

Download and install

To install this software simply add the sift directory to your MATLAB path and compile the MEX files (see also the included README file). This should be straightforward on Linux and Mac OS X and most versions of Windows. Alternatively you can try to use the pre-compiled binaries.

How Tos

Questions

Copyright

This software program is Copyright © 2006 The Regents of the University of California and can be freely used for academic purposes (see the included license file for details). Although this implementation is original (in particular, it is not derived from Lowe's implementation), the SIFT algorithm has been issued a patent. Thus you should note that:

This software embodies a method for which the following patent has been issued: "Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image," David G. Lowe, US Patent 6,711,293 (March 23, 2004). Provisional application filed March 8, 1999. Asignee: The University of British Columbia.