Ask Your Question

frek's profile - activity

2015-02-04 03:35:12 -0500 received badge  Scholar (source)
2015-02-03 08:31:47 -0500 received badge  Student (source)
2015-02-03 08:16:41 -0500 asked a question What exactly are ORB Descriptors

First of all I am completely new to openCV so I am sorry if this has an obvious answer.

Having the following code in Java:

FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);

Mat img1 = Highgui.imread("img1.png");
Mat img2 = Highgui.imread("img2.png");

Mat descriptors1 = new Mat();
MatOfKeyPoint keypoints1 = new MatOfKeyPoint();

detector.detect(img1, keypoints1);
descriptor.compute(img1, keypoints1, descriptors1);

Mat descriptors2 = new Mat();
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();

detector.detect(img2, keypoints2);
descriptor.compute(img2, keypoints2, descriptors2); 
//... Do stuff

I understand that the keypoints1 and keypoints2 are 500x7 arrays that each of these columns indicate x-y coordinates, size, angle, response, octave, class_id.

Each of the descriptors1 and descriptors2 are 500x32 arrays. My question is what does each of these 32 columns represent?