c++ - OpenCV 中的自定义 SIFT 检测器

标签 c++ opencv sift

有没有办法在 OpenCV 中指定自定义 SIFT 检测器参数?

似乎FeatureDetector constructor不接受任何参数,而似乎可以在 SIFT constructor 中指定这些参数.

我正在研究 Logo 检测。 一些标志的纹理信息非常少,所以我想在太少的时候检测更多的关键点(我可以增加 SIFT 的 edgeThreshold 吗?)。

最佳答案

可以创建 custom SIFT descriptor extractor :

SIFT siftDetectorExtractor = SIFT(200, 3, 0.04, 15, 1.6);

Mat logo = imread("logoName.jpg");

vector<KeyPoint> keyPoints;
Mat sifts;
siftDetectorExtractor(logo, Mat(), keyPoints, sifts);

或者使用检测类:

Ptr<FeatureDetector> detector = Ptr<FeatureDetector>( new SIFT( <your arguments> ) );

关于c++ - OpenCV 中的自定义 SIFT 检测器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22766767/

相关文章:

c++ - 由于未定义的行为或编译器错误导致 C++ 代码崩溃?

c++ - IAR C/C++ 比较运算符行为

c++ - 找出有吸引力的物体上的加速度

javascript - 不能从函数访问 opencv.js 属性和方法

opencv - 如果图像已经不失真,如何仅从两个 CameraParams 获得 P(投影矩阵)?

android - SURF 和 SIFT 特征检测器 OpenCV android

C++ "unresolved external symbol"使用来自不同项目的命名空间

image - 将素描(绘图)人脸照片与数码彩色照片相匹配

python - 无法在 Python OpenCV v4.20 中使用 SIFT

matlab - 尺度不变特征变换 (SIFT) 在 Matlab 中的实现