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?