Code covered by the BSD License  

Highlights from
Feature points in image, Keypoint extraction


4.5 | 4 ratings Rate this file 173 Downloads (last 30 days) File Size: 1.18 MB File ID: #29004
image thumbnail

Feature points in image, Keypoint extraction



11 Oct 2010 (Updated )

Finds, matches, plots feature points in images.

| Watch this File

File Information

Feature points (read corners) in images are points that invariant under view changes, zoom, lightening conditions etc.

These code has been written as part of the project I have performed in image processing course some time ago.
The code should (hopefully) be easily readable since it has been well commented, with report for background information and additional explanation.
Hope it will be useful for students entering the image processing field.
Implemented a SIFT like descriptor, as well as ASIFT (
Shortly about ASIFT - simulates view changes of images, for each such view finds FPs followed by descriptor calculation for future matching. It is slow and intended for studying purposes. Quick C++ implementation is available at the authors aforementioned ASIFT-project page.

There are a lot of options, parameters to control every step of calculations. Try to play with it: the performance may vary drastically.
Used pdist2.m code from Piotr's Toolbox
as well k nearest neighbors from Matlab exchange server, author of which I can't find now.


Keypoint Extraction inspired this file.

MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (8)
21 Oct 2014 risky

hay im new to matlab, can you tell me how to run the code ??

01 Jul 2014 Joyce

why HrLOrntPoints and HrLPoints have different rows? Should HrLOrntPoints has same number with HrLPoints only one column added?

10 Jan 2014 Artiom Kovnatsky

The problem with d2Fdxdy has been fixed, now d2Fdxdy = [ 1 0 -1; 0 0 0; -1 0 1 ]/4


14 Oct 2013 Indraneel Biswas

thank you for the great code.
however, there is a small bug in Findlclmxm.m
derivative mask d2Fdxdy = [ 1 0 -1; 0 0 0; -1 0 -1 ]/4 is not correct.

28 Feb 2013 Ferad

Very useful! There is some obsolete functions such as isrgb. A solution was to directly remove then an follow the code path for True.

07 Mar 2012 fastidious

I found your code very interesting, but it gave the following error...
??? Error using ==> minus
Matrix dimensions must agree.

Error in ==> Findlclmxm at 83
rowSPA = row - RowDeltaY( ind2 );

Error in ==> harrislpls at 80
[ row, clmn, rowSPA, clmnSPA, MxMtr ] = Findlclmxm(HrF, NBHOOD,
BorderDistance, ThreshType, HarrisThresh );

Error in ==> demoSIFT at 59
[ HrLPoints1 ] = harrislpls( img1gr, TypeOfNBHOOD, NBHOOD,
TypeOfCornerDetector, BorderDistance, ThreshType, HarrisThresh, k, Dilate,
radius, sigma_nmbr, dispPlaces, SwitchWaitbars );

02 Dec 2010 Artiom Kovnatsky

yes, u right, need to be what u've written.
I'll change it.
Thank you.

02 Dec 2010 bin yao

I have a question. In Findlclmxm.m, there is d2Fdxdy = [ 1 0 -1; 0 0 0; -1 0 -1 ]/4;

I think it should be [1 0 -1; 0 0 0; -1 0 1] ?

10 Jan 2014

- fixed bug in code (the one noticed by the users)
- description

Contact us