現在、vlfeat-lib の dsift-algorithm を使用しようとしています。ただし、フィルターを作成する値 (サンプル ステップ、ビン サイズ) に関係なく、実行中のすべてのフレームに対して同じ数のキーポイントが返されます (カメラからの連続するフレームは異なります)。C または C++ の使用法に関するドキュメントは非常に薄く、これらの言語の適切な例を見つけることができませんでした。関連するコードは次のとおりです。
// create filter
vlf = vl_dsift_new_basic(320, 240, 1, 3);
// transform image in cv::Mat to float vector
std::vector<float> imgvec;
for (int i = 0; i < img.rows; ++i){
for (int j = 0; j < img.cols; ++j){
imgvec.push_back(img.at<unsigned char>(i,j) / 255.0f);
}
}
// call processing function of vl
vl_dsift_process(vlf, &imgvec[0]);
// echo number of keypoints found
std::cout << vl_dsift_get_keypoint_num(vlf) << std::endl;