File Exchange

image thumbnail

Keypoint Extraction

version (343 KB) by Vincent Garcia
Extract image keypoints using most common algorithms.


Updated 07 Dec 2007

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.

Cite As

Vincent Garcia (2021). Keypoint Extraction (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (23)


Shouldn't we take absolute value of LoG in harris laplace?

Fatma Elzahraa Ahmed

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




Excellent. Many thanks


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!


how to download?

Xin Li

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


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

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

Raymond Cheng

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"?

MATLAB Release Compatibility
Created with R2007b
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!