Conversion of BRISKPoints and SURFPoints to each other

1 view (last 30 days)
Hello,
I'm detecting BRISK and SURF points from image and then use extract descriptors from them. But I realised that BRISKPoints and SURFPoints has completely different scales. I've looked through extractFeatures function. Which uses BRISKPoints or SURFPoints to extract features. There are conversion functions inside the function such that pointsToBRISKPoints or parseSURFInputs. In those functions scales are converted. But there is a problematic part.
When BRISK points converted to SURF points BRISK scales are divided by 6 . On the other hand when SURF points converted to BRISK points SURF scales are multiplied by 10 ! I think it should be 6 too! Why does not it is 6?
Here is the code for BRISK to SURF:
scale = points.Scale ./ 6; % map BRISK to SURF scale
scale(scale < 1.6) = 1.6; % saturate to min SURF scale
Here is the code for SURF to BRISK:
% Set the BRISK scale to be 10*s which covers most of the
% equivalent SURF extraction region.
ptsStruct.Scale = round(points.Scale .* 10);
Then I looked more, when I use BRISK and SURF points for FREAK descriptor, again there is a conversion but completely nonsense.
Here is the code for converting SURF points for FREAK:
ptsStruct.Scale = round(points.Scale .* 7.5);
Here is the code for converting BRISK points for FREAK:
% The value of 12 and 18 below corresponds to the BRISK and FREAK
% pattern radius, respectively.
ptsStruct.Scale = points.Scale .* (18/12);
Can someone please explain these inconsistencies about scale mappings?

Answers (1)

Dima Lisin
Dima Lisin on 24 Sep 2014
Please see this answer.
  1 Comment
Guney
Guney on 24 Sep 2014
I asked that question on that site. Thanks for sending me my own link :)

Sign in to comment.

Categories

Find more on Image Processing and Computer Vision in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!