图像处理-关键点数的SIFT openCV



我使用以下代码来提取和绘制图像中的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);

可以使用以下行来完成:

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

相关内容

  • 没有找到相关文章

最新更新