OpenCV Brisk 没有检测到任何关键点

OpenCV Brisk not detecting any keypoints

我有一张图片,我想在更大的图片中进行检测(即查看是否存在类似版本)。模板匹配不够准确,因为项目可以生根和缩放,所以 Brisk 似乎是一个有希望的方法:

但是,当我尝试创建描述符时,我没有得到 return:

这是我的示例图片:

BRISK = cv2.BRISK_create()
keypoints1, descriptors1 = BRISK.detectAndCompute(img, None)

returns

 ([], None)

有什么建议可以让我获得更好的结果吗?为什么 Brisk 没有检测到任何特征?将阈值更改为 0 并添加八度似乎没有帮助。

您的图片太小,找不到任何有意义的描述符。除非您使用更大尺寸的图像,否则可以使用以下解决方案:

img = cv2.imread("/path/to/image/so_brisk.png")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  # Gray
w, h = gray.shape
scale_factor = 3
gray = cv2.resize(gray, (h*scale_factor, w*scale_factor), interpolation = cv2.INTER_AREA)

BRISK = cv2.BRISK_create()
keypoints1, descriptors1 = BRISK.detectAndCompute(gray, None)