27

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

Ofir G
  • 736
  • 6
  • 18
Guillem
  • 2,376
  • 2
  • 18
  • 35

3 Answers3

50

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.

Guillem
  • 2,376
  • 2
  • 18
  • 35
  • 1
    from the first step ".. OpenCV installed remove it *before* installation", emphasize on - before installation - – Ofir G Aug 20 '20 at 13:14
13

This should solve the issue, if you have pip installed. I found pip installer to be better than conda installer in general.

pip install opencv-contrib-python
Aditya Bhattacharya
  • 914
  • 2
  • 9
  • 22
1
pip install opencv-contrib-python --upgrade

works for me.

R. Marolahy
  • 1,325
  • 7
  • 17