模块 'cv2.cv2' 没有属性 'ximgproc'

Module 'cv2.cv2' has no attribute 'ximgproc'

我正在尝试使用 OpenCV 对图像执行选择性搜索,但是当我 运行 我的代码时,我得到了这个:

>>> import cv2
>>> ss = cv2.ximgproc.segmentation.createSelectiveSearchSegmentation()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'cv2.cv2' has no attribute 'ximgproc'

我见过类似的问题,但人们通过安装 opencv-contrib-python 软件包解决了这些问题。我已经安装了这个模块,但问题仍然存在。

这是我的需求文件:

opencv-contrib-python==4.1.0.25
opencv-python==4.1.0.25

我正在使用 python 3.7

的 conda 环境

如果您安装了 pip,这应该可以解决问题。我发现 pip 安装程序通常比 conda 安装程序更好。

pip install opencv-contrib-python

如 OpenCV pypi 网页中所述:

  1. 如果您安装了以前版本的 OpenCV,请在安装 之前删除它以避免冲突。
  2. 有 4 个不同的 opencv 包:opencv-pythonopencv-contrib-pythonopencv-python-headlessopencv-contrib-python-headless
  3. 您只能安装一个。多个opencv包不兼容。

问我的问题时,我有 2 个 opencv 包。因此我首先删除了两个现有的包:

$ pip uninstall opencv-contrib-python opencv-python

然后,我只安装了一个包:

$ pip install opencv-contrib-python

终于安装成功了。

pip install opencv-contrib-python --upgrade

适合我。