Ask Your Question

Keypoint Descriptor with different size on different computers

asked 2013-03-28 14:06:46 -0600

icedecker gravatar image

updated 2013-03-28 14:08:36 -0600

I'm having a strange behavior with my keypoint descriptor. I have stored the keypoints descriptors of a object in a yml file for further use in another code. The size (cols) is 128. When I extract in runtime the keypoint descriptor of a scene to detect the object (the descriptors of the object are in the yml file), in my laptop the size of the scene descriptor is 128 and the matching run nicely.

But in another computer, running the same code the size of the extracted scene descriptors is 64. So I'm unable to do the matching.

How it is possible that the size of the descriptors are different in different computers with the same code? It is possible to force a descriptor to have the desired size?

edit retag flag offensive close merge delete


Since it is 128 versus 64 it seems like a data type definition to me. Could you please post the actual configurations and environments you are running the code in of both machines?

StevenPuttemans gravatar imageStevenPuttemans ( 2013-03-28 15:27:23 -0600 )edit

I'm running in these computers the same configuration: OpenCV 2.4.4 and Ubuntu 12.04 (both are 64 bits).

icedecker gravatar imageicedecker ( 2013-04-01 06:27:39 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2013-03-28 15:00:25 -0600

Guanta gravatar image

updated 2013-03-28 15:23:51 -0600

Actually this should not happen. Which language are you using?

I am guessing you are using SURF-features? You can call the constructor (SURF::SURF(double hessianThreshold, int nOctaves=4, int nOctaveLayers=2, bool extended=true, bool upright=false )) explicitly and setting extended to true (which is also the default), maybe that helps.

Edit I just recognized that the standard-constructor SURF() sets extended to false while the overloaded constructor with more parameters sets them default to true. Maybe this plays a role here...

edit flag offensive delete link more


I've initialized the SURF with these parameters: SurfFeatureDetector detector(minHessian,4,3,true,true);. So is strange that it behaves different in different computers.

icedecker gravatar imageicedecker ( 2013-04-01 06:25:59 -0600 )edit

Indeed, are you using both-times the same OpenCV-Versions?

Guanta gravatar imageGuanta ( 2013-04-01 06:42:26 -0600 )edit

Yes, I'm using OpenCV 2.4.4 in both computers.

icedecker gravatar imageicedecker ( 2013-04-01 09:06:29 -0600 )edit

Very strange, maybe a developer knows more: please place a ticket at and reference to this thread.

Guanta gravatar imageGuanta ( 2013-04-01 09:15:18 -0600 )edit

Question Tools


Asked: 2013-03-28 14:06:46 -0600

Seen: 293 times

Last updated: Mar 28 '13