gpt4 book ai didi

opencv - 使用 OpenCV 从小图像中提取点描述符

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:49 24 4
gpt4 key购买 nike

我正在尝试提取不同的点描述符(SIFT、SURF、ORB、BRIEF 等)来构建 Bag of Visual words。问题似乎是我使用的图像非常小:12x60px。使用密集提取器我能够获得一些关键点,但随后在提取描述符时没有提取任何数据。

代码如下:

vector<KeyPoint> points;
Mat descriptor; // descriptor of the current image
Ptr<DescriptorExtractor> extractor = DescriptorExtractor::create("BRIEF");
Ptr<FeatureDetector> detector(new DenseFeatureDetector(1.f,1,0.1f,6,0,true,false));
image = imread(filename, 0);
roi = Mat(image,Rect(0,0,12,60));

detector->detect(roi,points);

extractor->compute(roi,points,descriptor);
cout << descriptor << endl;

结果是 [](使用 BRIEF 和 ORB)和 SegFault(使用 SURF 和 SIFT)。有没有人知道如何从 OpenCV 上的小图像中密集提取点描述符?感谢您的帮助。

最佳答案

的确,我终于设法找到了解决方案。感谢您的帮助。

我现在使用的是带有初始化参数的 Orb 检测器,而不是随机参数,例如:

Ptr<DescriptorExtractor> extractor(new ORB(500, 1.2f, 8, orbSize, 0, 2, ORB::HARRIS_SCORE, orbSize));

在找到我的问题的答案之前,我必须彻底探索 OpenCV 的文档:Orb documentation .

此外,如果人们正在使用密集点提取器,他们应该意识到在描述符计算过程之后,他们的关键点可能少于关键点提取器产生的关键点。描述符计算会删除无法获取数据的任何关键点。

关于opencv - 使用 OpenCV 从小图像中提取点描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com