Ask Your Question

Revision history [back]

[BRISK] There is no a possibility to change keypoints size

Dear colleagues, faced up with next problem: i'm using wrapped OpenCV library fo c# - EmguCV. Using the BRISK detector i can extract keypoint from a image

var detector = new Brisk();
var image = new Mat(imagePath);
var keyPoints = new VectorOfKeyPoint(); //vector for keypoint. Now it's empty.
var descriptors = new Mat();
detector.DetectAndCompute(image, null, keyPoints, descriptors, false); // extracting process. By default, all keypoints in "keyPoints" vector have standart size equals 8.4.

Then i wanna to change size of all keypoints from "keyPoints" vector. I have created helper method for this goal:

private static VectorOfKeyPoint ChangingKeyPointSize(VectorOfKeyPoint keyPoints)
        {
            var _tmp_vectorOfKeyPoing = keyPoints.ToArray();

            for (int i = 0; i < _tmp_vectorOfKeyPoing.Count(); i++)
            {
                _tmp_vectorOfKeyPoing[i].Size = 20.1F;

            }
            var result = new VectorOfKeyPoint(_tmp_vectorOfKeyPoing);

            return result;
        }

and then i work with vector of keypoints returned by ChangingKeyPointSize() method. Using debug i have checked that in code size of keypoint was changed successfully (for ex. from 8.4 to 20.1) but visually size of keypoints didn't changed and stay the same (after working ChangingKeyPointSize()as well)

Tell me please what is the cause of this strange behavior ? Thanks a lot !