OpenSURF (including Image Warp)

SURF (Speeded Up Robust Features) image feature point detection / matching, as in SIFT
Updated 6 Sep 2010

View License

This function OPENSURF, is an implementation of SURF (Speeded Up Robust Features). SURF will detect landmark points in an image, and describe the points by a vector which is robust against (a little bit) rotation ,scaling and noise. It can be used in the same way as SIFT (Scale-invariant feature transform) which is patented. Thus to align (register) two or more images based on corresponding points (see example3.m), or make 3D reconstructions.

This Matlab implementation of Surf is a Matlab optimized translation of the OpenSurf C# code of Chris Evans, and gives exactly the same answer. Chris Evans wrote one of the best, well structured all inclusive SURF implementations. On his site you can find Evaluations of OpenSURF and the C# and C++ code.
Chris Evans gave me permisson to publish this code under the (Mathworks) BSD license.

Usage :
Ipts = OpenSurf(I, Options)

I : The 2D input image color or greyscale
Options : A struct with options (see below)

Type "help OpenSurf" or "doc OpenSurf" for a basic surf example, and try the example2.m and example3.m for more advanced point matching and affine registration examples.

If you want to use opensurf for nonrigid registration, see "B-spline Grid, Image and Point based Registration" on Mathworks.

Please leave a comment if you find a bug, like the code, or have a question. Visit the page of Chris Evans if you want more detailed information about the algorithm.

Cite As

Dirk-Jan Kroon (2024). OpenSURF (including Image Warp) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Updated example see comment "Evgeny". Added Affine image transformation example.

Now always works for small images. Added verbose information option.

Fixed small bug in paint function

Speed Up 10x ...