Плотные точки SIFT & amp; Извлечение дескриптора с помощью vlfeat

В настоящее время я использую Dense SIFT от vlfeat. Но я получил только одну ключевую точку & дескриптор из кода. Но количество возвращенных ключевых точек было больше. Как извлечь все ключевые точки & дескрипторы.

Также дескриптор был единственным значением, и он должен быть 128 X N.

Код выглядит следующим образом.

Размер vlkeypoints был только один. Как извлечь все ключевые точки?

    img = imread("filename.jpg");

// create filter
vlf = vl_dsift_new(img.rows, img.cols, 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;

// Extract keypoints
VlDsiftKeypoint * vlkeypoints;
vlkeypoints = vl_dsift_get_keypoints(vlf);

1

Решение

for (int i = 0; i < numKeyPoints; i++) {
cout << vlkeypoints[i].x << endl;
cout << vlkeypoints[i].y << endl;
}
0

Другие решения


По вопросам рекламы [email protected]