Ask Your Question

Revision history [back]

cvExtractSurf: parameter useProvidedKeyPts

Hi, I'm trying to reuse previously computed key-points with "cvExtractSurf", setting useProvidedKeyPts = 1. This short snipped can show the issue.

CvSeq *imageKeypoints = 0;
CvSeq *imageDescriptors = 0;
CvMemStorage* storage = cvCreateMemStorage(0);
CvSURFParams params = cvSURFParams(400, extended);

//working version (KP+descriptors)    
//cvExtractSURF( image, 0, &imageKeypoints, &imageDescriptors, storage, params, 0 );

//not working version           
cvExtractSURF( image, 0, &imageKeypoints, NULL, storage, params, 0 );
cvExtractSURF( image, 0, &imageKeypoints, &imageDescriptors, storage, params, 1 );

Actually before the last call to cvExtractSurf, the values are: imageKeypoints->total : 27411. imageDescriptors : NULL

After the call to cvExtractSurf, the values are such that every KPs seem to be erased. imageKeypoints->total : 0 imageDescriptors->total : 0

The same behavior is shown with 2.4.5 and 2.4.8 version. (in OpenCV 2.1 it was working correctly)

I need to keep KPs and descriptors computations separated. In case I'm doing wrong, anyone can please suggest me the correct way to do that? Thanks.