从3.0版开始,DenseFeatureDetector不再可用。有人可以告诉我如何在OpenCV 3.0中计算密集SIFT功能吗?我无法在文档中找到它。
非常感谢你!
答案 0 :(得分:9)
您可以将<li><a href="{{route('categoryid',['argument'])}}">Argument</a></li>
的列表传递给cv2.KeyPoints
。这个例子是在Python中,但它显示了原理。我通过扫描图像的像素位置来创建sift.compute
的列表:
cv2.KeyPoint
答案 1 :(得分:4)
以下是我在OpenCV 3 C ++中使用密集SIFT的方法:
SiftDescriptorExtractor sift;
vector<KeyPoint> keypoints; // keypoint storage
Mat descriptors; // descriptor storage
// manual keypoint grid
int step = 10; // 10 pixels spacing between kp's
for (int y=step; y<img.rows-step; y+=step){
for (int x=step; x<img.cols-step; x+=step){
// x,y,radius
keypoints.push_back(KeyPoint(float(x), float(y), float(step)));
}
}
// compute descriptors
sift.compute(img, keypoints, descriptors);
似乎运作良好