SIFT openCV 的关键点数?

Posted

技术标签:

【中文标题】SIFT openCV 的关键点数?【英文标题】:number of keypoints by SIFT openCV? 【发布时间】:2014-03-16 11:47:57 【问题描述】:

我正在使用以下代码来提取和绘制图像中的 SIFT 关键点。但是在我的代码中,我没有指定要提取多少个关键点?所以,这完全取决于图像有多少关键点。

我想要什么:我想指定我需要在图像中最多包含 20 个关键点。如果 20 个关键点不存在,则无需继续进行,或者如果关键点超过 20 个,则只考虑最重要的 20 个关键点。

我当前的代码:

//To store the keypoints that will be extracted by SIFT
vector<KeyPoint> keypoints;

//The SIFT feature extractor and descriptor
SiftDescriptorExtractor detector;    


Mat input;    

//open the file
input = imread("image.jpg", 0); 

//detect feature points
detector.detect(input, keypoints);

///Draw Keypoints
Mat keypointImage;
keypointImage.create( input.rows, input.cols, CV_8UC3 );
drawKeypoints(input, keypoints, keypointImage, Scalar(255,0,0));
imshow("Keypoints Found", keypointImage);
waitKey(0);

【问题讨论】:

好吧,下一步就是特征提取,对吧?您可以使用 BOW 将特征聚类到一定数量(如 20)并基于聚类的 BOW 特征进行相似性测量(如 SVM) @berak:是的,我知道。我已经在做。但我想在这一步限制提取的关键点的数量。所以,我对如何限制关键点的数量感到困惑 【参考方案1】:

可以使用以下行来完成:

//The SIFT feature extractor and descriptor
SiftDescriptorExtractor detector(20); 

【讨论】:

以上是关于SIFT openCV 的关键点数?的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenCV 丢弃细胞图像中的异常 SIFT 关键点

OpenCV 3 中 SIFT 的示例代码?

OpenCV中的特征匹配(Feature Matching)

OpenCV+Python特征提取算法与图像描述符之SIFT / SURF / ORB

OpenCV竟然可以这样学!成神之路终将不远(三十五)

如何使用 OpenCV 和 SIFT 查找我的训练图像的多个实例