如何使用openCV 3.1在python中的SIFT算法中设置关键点(描述符)的数量?

问题描述 投票:1回答:1

在opencv 3.0和早期版本中,可以通过使用代码来限制SIFT中的关键点数量:

kp, des = cv2.SIFT(150).detectAndCompute(pic, None) 

但是与opencv 3.1一样,SIFT已移至xfeatures2d,因此此函数给出了错误如何在SIFT opencv3.1中设置关键点的数量

我的代码是:

def gen_sift_features(gray_img):
    sift = cv2.xfeatures2d.SIFT_create()
    kp, desc = sift.detectAndCompute(gray_img, None)
    return kp, desc  
python sift descriptor opencv3.1
1个回答
0
投票

您可以将nfeatures参数用作:

sift = cv.xfeatures2d.SIFT_create(nfeatures=150)

这是保留的最佳功能的数量。来源:

help(cv.xfeatures2d.SIFT_create)

SIFT_create(...)

SIFT_create([,nfeatures [,nOctaveLayers [,对比度阈值[,edgeThreshold [,sigma]]]])-> retval

。 @param nfeatures保留的最佳功能的数量。功能按得分排序

。 (在SIFT算法中测量为局部对比度)

© www.soinside.com 2019 - 2024. All rights reserved.