Convert keypoint to ellipse

asked 2013-07-23 04:24:50 -0500

Hi,

Keypoints in openCV have an orientation and zize, but that's not enough to convert them to an ellipse that describes the region (There are an infinite number of ellipses with the same orientation and size).

I noticed that in the feature2d evaluation file:

https://github.com/Itseez/opencv/blob/master/modules/features2d/src/evaluation.cpp

they somehow convert a keypoint to an ellipse, but I can't figure out how they uniquely determine the size of the axes.

Can someone please shed some light on this?

Thanks,

Gil.

edit retag flag offensive close merge delete

Comments

1

Just a note, you are mixing up the difference between an actual keypoint and a descriptor region around it. A keypoint itself is a single dot location and can never have an orientation and size. However, the description of that keypoint CAN have a size and orientation, depending on which descriptor algorithm you are using. However if you know the size and the direction, then there can only be a single ellips matching right? The size defines the largest dimensions of the ellips following the axes of the orientation.

StevenPuttemans gravatar imageStevenPuttemans ( 2013-07-23 04:34:11 -0500 )edit

Oh, I thought the size was the space of the keypoint. I didn't know it's the largest dimension.

GilLevi gravatar imageGilLevi ( 2013-07-23 08:30:18 -0500 )edit

It is the space of the keypoint description. If you know an angle and a width and a height it is just plain math to calculate the dimension ...

StevenPuttemans gravatar imageStevenPuttemans ( 2013-07-23 08:38:15 -0500 )edit

Thanks for the answer

GilLevi gravatar imageGilLevi ( 2013-07-23 08:41:13 -0500 )edit

I fail to understand. Does descriptors such as Brisk output the width and height of the region?

And if I have only the orientation and the size of the largest dimension, there still exists an infinite number of ellipses that fit.

Can you please explain? Thanks.

GilLevi gravatar imageGilLevi ( 2013-07-23 08:48:46 -0500 )edit

You are mixing up techniques. SURF for example takes a single region around a keypoint. Brisk however uses sampling on specific radii around the keypoint.

StevenPuttemans gravatar imageStevenPuttemans ( 2013-07-23 11:18:18 -0500 )edit

Thanks for the answer. For the example of the Brisk detector, what is the meaning of the "size" and "orientation" and is there any way to deduce a bounding ellipse from those parameters?

Thanks!

GilLevi gravatar imageGilLevi ( 2013-07-24 08:27:03 -0500 )edit

Have a look at this powerpoint about BRISK. Basically you should put more research in an algorithm so that you actually understand the basics!

StevenPuttemans gravatar imageStevenPuttemans ( 2013-07-24 09:13:13 -0500 )edit

I know all about brisk. My question is what those parameters exactly represent in the openCV implementation, not in the original theoretical work.

GilLevi gravatar imageGilLevi ( 2013-07-24 10:54:43 -0500 )edit

It looks to me they have exact the same meaning as in those slides...

StevenPuttemans gravatar imageStevenPuttemans ( 2013-07-24 11:38:47 -0500 )edit