File Exchange

image thumbnail

Keypoint Extraction

version 1.0 (343 KB) by

Extract image keypoints using most common algorithms.

14 Ratings



View License

The current directory contains functions allowing to extract keypoints also called "feature points", "corners", "interest points", etc. The following algorithm are provided :
- Harris
- Harris-Laplace
- Laplacian of Gaussian (LoG)
- Gilles
The input image must be a gray level image. The output is a matrix of dimension Nx2 or Nx3 with N the number of keypoints extracted. The first column gives the row poisition of the keypoints and the second column gives the column position of the keypoints. The third column gives the feature scale of the keypoints. This scale corresponds to the radius of the local neighborhood to consider. Note that the SUSAN algorithm is a contribution of Joaquim Luis.

Run the test function to see an example.

The picture "door" was taken by Aleksandra Radonic'.
The picture "sunflower" was taken by Candy Torres.
The picture "patrol" was taken by Markus Schöpke.

Comments and Ratings (22)

Is it right to input a vector to the kp_log? Actually, I did that and obtained N*3, where first column in the row in the input, the second column is always 1 (because the input is vector( and the third column contain numbers (scales as mentioned here). Are the obtained results are logical?

xin guowang

@ vincent Excellent work!thanks!but how to get susan program?

xin guowang

xin guowang

zhou kangpeng


@ vincent but susan is not working here. how can i extract keypoints using susan


Moo (view profile)


Yan (view profile)


Excellent. Many thanks


Yang (view profile)

hi good job,I want to change the code to extract the point with the plot function,that maybe used plot(r,c,'r+'),so how can I change it?thank you!


Yang (view profile)

how to download?

Xin Li

Xin Li (view profile)

It will be perfect if the user could control the number of the output key points on some level.


Maxime (view profile)

Great job!

I found that replacing imfilter(img,...) by imfilter(single(img),...) significantly speeds up the detection of keypoints. This is especially interesting with kp_log for which the time decreased from several minutes to 10 seconds in my case. This is due to the available Intel IPP library (as mentioned in the doc of imfilter).


Great job,, I have a question,,,
The output give some keypoints of the input image, how can I extract the features of the image from ONLY THESE SELECTED KEYPOINTS?

Vincent Garcia

Vincent Garcia (view profile)

Hi Zhu and hi all,
I found the Gilles' PhD thesis on Internet but I unfortunately don't have the adress.

Thanks for your sharing.

Zhu Johnny

Vincent, thank you for your excellent work, Can you tell me where can I get S Gilles' PhD thesis? I wanna learn how the Gilles algorithm works in detail

Daniel Schleicher


zenith tan

can i use subplot instead of draw ?

thx !

zenith tan

its an excellent piece of work

Vincent Garcia

Actually, in my first submission, the SUSAN algorithm was not used (I had just forgotten to remove the susan.dll file). Now, I add the SUSAN algorithm wich is a contribution of Joaquim Luis. I hope you will enjoy my (our) contribution.

Joaquim Luis

Vincent, It seams that you are using my "susan" submission. No problem with it but you should acknowledge it and by that way users would know where to get the source code.
Also, why are you terminating functions with an "end"?


Remove the Thumb file added by Windows

Modification of description

I add the SUSAN algorithm provided by Joaquim Luis

MATLAB Release
MATLAB 7.5 (R2007b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video