SURF Points filtering

5 views (last 30 days)
Tobias Pahlberg
Tobias Pahlberg on 17 Oct 2011
I would like to remove SURF-points which are on a black boundary, where the intensity is zero. I have an image which I transformed and now has a black border around it. I don't want to rotate and crop the transformed image for demonstration purposes. How can I remove these SURF-points?

Answers (1)

Witek Jachimczyk
Witek Jachimczyk on 17 Oct 2011
If you are using SURFPoints object from the Computer Vision System Toolbox, once you create your object, you can access the Location property, e.g.
x = SURFPoints([20 20; 3 4]); % this would normally be generated % by detectSURFFEatures >> x.Location
ans =
20 20
3 4
You can now filter the points based on location, e.g.
>> xcoord = x.Location(:,1) % get column of x coordinates
xcoord =
20
3
>> x(xcoord>5) = [] % wipe out any point where x coordinate is % greater than 5
Hence, you can wipe out points that are within a particular image region. You'll need to know the coordinates of you black border in order to use this strategy. Let me know if any of this is not making sense.
Witek
  1 Comment
Tobias Pahlberg
Tobias Pahlberg on 24 Oct 2011
My black border is not straight so I can't write x(xcoord>5) = [];
It seems a bit backwords to search for the SURFPoints in the unwanted area. Is there no way to make the program never look for them there. I would also like to know if there is a way to do that with the FAST corner detector. Make it never look for corners on a completely black border.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!