'cannot import name '_registerMatType' from 'cv2.cv2'
I got below error message when I run model_main_tf2.py on Object Detection API:
Traceback (most recent call last):
File "/content/models/research/object_detection/model_main_tf2.py", line 32, in <module>
from object_detection import model_lib_v2
File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 29, in <module>
from object_detection import eval_util
File "/usr/local/lib/python3.7/dist-packages/object_detection/eval_util.py", line 36, in <module>
from object_detection.metrics import lvis_evaluation
File "/usr/local/lib/python3.7/dist-packages/object_detection/metrics/lvis_evaluation.py", line 23, in <module>
from lvis import results as lvis_results
File "/usr/local/lib/python3.7/dist-packages/lvis/__init__.py", line 5, in <module>
from lvis.vis import LVISVis
File "/usr/local/lib/python3.7/dist-packages/lvis/vis.py", line 1, in <module>
import cv2
File "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 9, in <module>
from .cv2 import _registerMatType
ImportError: cannot import name '_registerMatType' from 'cv2.cv2' (/usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so)
The weird thing is I run the same code before, it worked well but now it gives me an error.
Solution 1:[1]
The same thing occurred to me yesterday when I used Colab. A possible reason may be that the version of opencv-python(4.1.2.30) does not match opencv-python-headless(4.5.5.62). Or the latest version 4.5.5 may have something wrong...
I uninstalled opencv-python-headless==4.5.5.62 and installed 4.1.2.30 and it fixed.
Solution 2:[2]
The same thing occurred to me. My status:
C:\Windows\system32>pip list |findstr opencv
opencv-python 4.5.2.52
opencv-python-headless 4.5.5.62
The version isn't same. So I first uninstall headless:
pip uninstall opencv-python-headless==4.5.5.62
Then reinstall headless 4.5.2.52 with opencv-python package.
pip install opencv-python-headless==4.5.2.52
The problem is the resolved.
Solution 3:[3]
Try uninstall and install(version 4.1.2.30) Headless main modules package
!pip uninstall opencv-python-headless
!pip install opencv-python-headless==4.1.2.30
Solution 4:[4]
I've had the same issue and the problem was with opencv versioning:
C:\Windows\system32>pip list |findstr opencv
opencv-python 4.5.2.52
opencv-python-headless 4.5.5.62
As you can see the versions are not the same, so first uninstall headless:
pip uninstall opencv-python==4.5.2.52
And then reinstall opencv-python 4.5.5.62 with opencv-python package:
pip install opencv-python-headless==4.5.5.62
Solution 5:[5]
I had the same issue and fixed it by just uninstalling and reinstalling opencv.
pip uninstall opencv-python
pip install opencv-python
Solution 6:[6]
After I updated opencv this error occured, in my case
pip list | grep opencv
showed:
opencv-contrib-python 4.5.3.56
opencv-python 4.5.5.62
I upgraded opencv-contrib-python
python -m pip install --upgrade opencv-contrib-python
and the error disappeared.
Solution 7:[7]
In case anyone else is having this issue on docker: I was trying to use version 4.3.0.38 and I couldn't find any pre-installed OpenCV on the docker image I was working with. Installing the package with conda install -c conda-forge opencv=4.3.0 instead of pip worked for me.
Solution 8:[8]
In my case, the following method was a solution.
pip list | findstr opencv opencv-contrib-python 4.5.5.64 opencv-python 4.5.3.56
I installed opencv earlier than opencv contribution. So, I decided to make their versions the same.
pip uninstall opencv-python==4.5.3.56 pip install opencv-python==4.5.5.64
The problem was gone. Thanks.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
