OpenCV の SurfDescriptorExtractor に問題があります。マトリックスはまったく作成されません。
問題は、私が重要なポイントを押し付けているということです。現在、デバッグするために、それらのうちの 4 ~ 5 つしか使用していません。cv::Keypoint でキー ポイントを作成し、既定のコンストラクターを使用します。ポイントとオクターブの座標を 3 に設定しました。残りは触れません。
ここに私がやっていることのコードがあります:
SurfDescriptorExtractor extractor;
cv::detail::ImageFeatures &cdif = features[i];
Mat gray_image = imread(images[i], CV_LOAD_IMAGE_GRAYSCALE);
extractor.compute(gray_image, cdif.keypoints, cdif.descriptors);
そして、これがキーポイントを作成する方法です。これがループの内容です。
KeyPoint kp;
kp.octave = 3;
kp.pt.x = jpic.x;
kp.pt.y = jpic.y;
features[i].keypoints.push_back(kp);
では、extractor に記述子に何かを書き込むように強制する方法はありますか?