Ubuntu 在 OpenCV 中找不到 xfeatures2d

xfeatures2d not found in OpenCV on Ubuntu

我使用的是 OpenCV 版本 3.2.0,但在此找不到 xfeatures2d。有什么方法可以将它安装到相同版本的 OpenCV 上吗?

>>> import cv2
>>> help(cv2.xfeatures2d)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'xfeatures2d'

我遇到了同样的问题。 SURF 和 SIFT 不是 OpenCV 主要 repo 模块的一部分。相反,它们位于 opencv_contrib 文件夹中。 opencv_contrib 的 README 文件清楚地说明了如何在 opencv_contrib.

中安装模块
cd <opencv_build_directory>
cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
make -j5

另请注意,如果您使用的是 OpenCV 3.2,这些模块将安装在 Python3。

http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/ link 包含安装 opencv 3 所需的所有步骤以及 opencv_contrib。

如果 xfeatures2d 在完成上述 link 中提到的所有步骤后仍无法正常工作,则为 opencv_contrib.

克隆 https://github.com/opencv/opencv_contrib.git

对于 cv2 版本“4.5.2”和“4.5.1”,它有效!

sift = cv2.SIFT_create()
kp = sift.detect(gimg,None)
img=cv2.drawKeypoints(gimg,kp,img)
plt.imshow(img)

感谢