如何使用OpenCV 3.1在Python中的筛分算法中设置关键点(描述符)的数量



在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  

您可以使用nfeatures参数为:

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

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

help(cv.xfeatures2d.SIFT_create)

sift_create(...)

sift_create([,nfeatures [,noctavelayers [,contastthrestthreshold [,edgethreshold [,sigma]]]]]]]) -> retval

。@param nfeat提供保留的最佳功能数量。这些功能由其分数排名

。(以SIFT算法为局部对比度)

最新更新