3
我目前正在尝试使用vlfeat-lib的dsift算法。但是无论使用哪个值创建滤镜(采样步长,bin大小),它在执行过程中都会为每个帧返回相同数量的关键点(连续帧与摄像机不同)。在C或C++使用的文档是非常薄的,我无法找到这些语言的任何很好的例子.. 下面是相关代码:使用cv的vlfeat库的dsift :: Mat
// 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;
是。密集筛选基于固定网格提取描述符。这给出了每个图像相同数量的描述符。 – 2013-03-06 20:44:31