Ask Your Question

Brisk does not calculate orientation when keypoints are provided

asked 2013-08-10 09:53:01 -0500


I encountered something that looks a bit strange to me regarding Brisk's implementation.

A common way to use Brisk is:

    Ptr<FeatureDetector> detector = FeatureDetector::create(detector_name);
    Ptr<DescriptorExtractor> descriptor = DescriptorExtractor::create(descriptor_name);
    string s = format("%s\\%s\\img%d.ppm", dataset_dir.c_str(), dsname, k);
    Mat imgK=imread(s, 0);
    detector->detect(imgK, kp);
    descriptor->compute(imgK, kp, desc);

However, when using it this way, we supply the keypoints to the Brisk descriptor and the flag "useProvidedKeypoints" is true, thus Brisk does not compute orientation:

BRISK::operator()( InputArray _image, InputArray _mask, vector<KeyPoint>& keypoints,
                   OutputArray _descriptors, bool useProvidedKeypoints) const
  bool doOrientation=true;
  if (useProvidedKeypoints)
    doOrientation = false;
  computeDescriptorsAndOrOrientation(_image, _mask, keypoints, _descriptors, true, doOrientation,

Is that a bug or am I missing something here about Brisk's implementation?

Thanks in advance,


edit retag flag offensive close merge delete


Guess it is assumed, that the keypoints already have computed an orientation.

Guanta gravatar imageGuanta ( 2013-08-10 10:48:41 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2013-08-10 14:21:21 -0500

Problem solved: when calling the Brisk detector, it computes orientation.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools


Asked: 2013-08-10 09:53:01 -0500

Seen: 192 times

Last updated: Aug 10 '13