현재 vlfeat-lib의 dsift- 알고리즘을 사용하려고합니다. 그러나 필터 (샘플 단계, bin 크기)를 생성하는 값에 관계없이 실행 중 모든 프레임에 대해 동일한 수의 키포인트를 반환합니다 (연속 프레임은 카메라와 다릅니다). C 또는 C++ 사용에 대한 문서는 매우 얇은이며, 나는이 언어에 대한 좋은 예를 찾을 수 없습니다 .. 여기에 관련 코드입니다 :cv :: Mat와 함께 vlfeat 라이브러리의 dsift 사용
// 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;
넵. Dense는 고정 격자를 기반으로 설명자를 추출합니다. 이는 이미지 당 동일한 수의 설명자를 제공합니다. –