pythonopencvopencv-contrib

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


I am trying to perform a selective search to an image using OpenCV but when I run my code I get this:

>>> 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'

I've seen similar problems but people solved them installing opencv-contrib-python package. I've already installed this module but the problem persists.

Here is my requirements file:

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

I am using a conda environment with python 3.7


Solution

  • As mentioned in the OpenCV pypi web page:

    1. If you have previous version of OpenCV installed remove it before installation to avoid conflicts.
    2. There are 4 different opencv packages: opencv-python, opencv-contrib-python, opencv-python-headless, opencv-contrib-python-headless.
    3. You can only install one. Multiple opencv packages are incompatible.

    When asking my question, I had 2 opencv packages. Therefore I first removed the two existing packages:

    $ pip uninstall opencv-contrib-python opencv-python
    

    And then, I installed only one package:

    $ pip install opencv-contrib-python
    

    Finally, the installation worked.