I installed cv2 with pip3 install opencv-contrib-python on terminal and it worked, but on the python IDLE whenever I try to import cv2 or run a vscode file with cv2 imported it says
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/__init__.py", line 3, in <module>
from .cv2 import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so, 2): Symbol not found: _inflateValidate
Referenced from: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/.dylibs/libpng16.16.dylib (which was built for Mac OS X 10.13)
Expected in: /usr/lib/libz.1.dylib
in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/cv2/.dylibs/libpng16.16.dylib
in the terminal.
Any idea how to fix this?
I had the same question and I found it's because I use a high version of opencv (4.X.X), and my system version is low (mac os 10.12.5). So I installed a lower version of opencv (3.4.5.20), and then the question is solved.
You can use the following command to list the versions of opencv:
pip install opencv-python==
ERROR: Could not find a version that satisfies the requirement opencv-python== (from versions: 3.4.2.16, 3.4.2.17, 3.4.3.18, 3.4.4.19, 3.4.5.20, 3.4.6.27, 3.4.7.28, 3.4.8.29, 3.4.9.31, 4.0.0.21, 4.0.1.24, 4.1.0.25, 4.1.1.26, 4.1.2.30, 4.2.0.32)
ERROR: No matching distribution found for opencv-python==
Then you can try a lower version (3.4.5.20, for example), and install it using:
pip install opencv-python==3.4.5.20
Then you can retry import cv2 to see whether the question is solved.
I was puzzling around for a few hours and the thing that worked for me was to downgrade opencv (cv2) version via pip in conda enviroment (I am big fan of virtualenv but does not work smoothly with apple silicon M1 for now).
Follow these steps in activated virtual enviroment. To set virtual enviroment follow "Install conda" section from https://sayak.dev/install-opencv-m1/
pip3 uninstall opencv-python (equivalent is python3 -m pip uninstall opencv-python)
pip3 install opencv-python==randomwords (equivalent is python3 -m pip install opencv-python==randomwords)
Result should be error message which contains pip available versions for opencv (pick one)
pip3 install opencv-python==4.4.0.40 (my version of choice)
Verify with python3 -c "import cv2"
If there is not traceback you are good to go!
Notes:
Tested with python version 3.8.6
Operating system: MacOS Big Sur 11.3.1
OpenCV is also referred to as cv2 in Python.
The installation of OpenCV varies betweenoperating systems, so below Iam providing instructions for Windows, Mac, and Linux:
Installing OpenCV on Windows
1.Open the command line and type:
pip install opencv-python
2.Then open a Python session and try:
import cv2
3.If you get no errors, then OpenCV has been successfully installed and you can skip the next steps.
4.If there is an error (usually saying that DLL load failed) then please download a precompiled wheel (.whl) file from this link and install it with pip. Make sure you downloadthe correct file for your Windows version and your Python version. For example, forPython 3.6 onWindows 64-bit you would do this:
pip install opencv_python3.2.0cp36cp36mwin_amd64.whl
5.Then try to import cv2 in Python again. If there's still an error, then please type the following again in the command line:
pip install opencv-python
6.Now you should successfully importcv2 in Python.
Installing OpenCV on Mac
Currently some functionalities of OpenCV are not supported for Python 3 on Mac OS, so it's best to install OpenCV for Python 2and use Python 2 to run the programsthat containscv2 code. Its' worth mentioning that Python 2 is installed by default on Mac, so no need to install Python 2. Here are the steps to correctly install OpenCV:
Install brew:
Open your terminal and paste the following:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. OpenCV depends on GTK+, so please install that dependencyfirst with brew (always from the terminal):
brew install gtk+
Install OpenCV with brew:
brew install opencv
Open Python 2 by typing:
python
Import cv2 in Python:
import cv2
If you get no errors, that means OpenCV has been successfully installed.
Installing OpenCV on Linux
1.Please open your terminal and execute the following commands one by one:
sudo apt-get install libqt4-dev
cmake -D WITH_QT=ON ..
make
sudo make install
2.If that doesn't work, please execute this:
sudo apt-get install libopencv-*
3.Then install OpenCV with pip:
pip install opencv-python
Import cv2 in Python.If there are no errors, OpenCVhas been successfully installed.
Actually, this issue has been raised for MacOS Catalina. I know the ask to solve this is painful but as of now the only clean way is to remove/uninstall anaconda completely and then do a fresh reinstall with installation directory set as /Users//anaconda3. Currently if you would notice this is in /opt which is not appropriate for MacOS Catalina. I may also recommend to use the command line installer.
More info: https://www.anaconda.com/blog/how-to-restore-anaconda-after-macos-catalina-update
Issue report: https://github.com/ContinuumIO/anaconda-issues/issues/10998.
I'm trying to install OpenCV for Python through Anaconda, but I can't seem to figure this out.
I tried
conda install opencv
conda install cv2
I also tried searching
conda search cv
No cigar. I ran across this which lists opencv as an included package:
http://docs.continuum.io/anaconda/pkgs.html
After running conda info I noticed my version is 3.4.1, but I couldn't seem to find any information about this version online. I'm pretty confused about this.
Am I missing something pretty obvious here? If opencv was available for a previous version of Anaconda, then why wouldn't it be available for the newer version? And why does that link only show me documentation for version 1.9.2?
You can install it using binstar:
conda install -c menpo opencv
conda install opencv currently works for me on UNIX/python2. This is worth trying first before consulting other solutions.
This worked for me (on Ubuntu and conda 3.18.3):
conda install --channel https://conda.anaconda.org/menpo opencv3
The command above was what was shown to me when I ran the following:
anaconda show menpo/opencv3
This was the output:
To install this package with conda run:
conda install --channel https://conda.anaconda.org/menpo opencv3
I tested the following in python without errors:
>>> import cv2
>>>
I have summarized my now fully working solution, OpenCV-Python - How to install OpenCV-Python package to Anaconda (Windows). Nevertheless I've copied and pasted the important bits to this post.
At the time of writing I was using Windows 8.1, 64-bit machine, Anaconda/ Python 2.x. (see notes below - this works also for Windows 10, and likely Python 3.x too).
NOTE 1: as mentioned mentioned by #great_raisin (thank you) in comment section however, this solution appears to also work for Windows 10.
NOTE 2: this will probably work for Anaconda/Python 3.x too. If you are using Windows 10 and Anaconda/Python 3.x, and this solution works, please add a comment below. Thanks! (Update: noting from comment "Working on Windows 10")
NOTE 3: depending on whether you are using Python 2.x or 3.x, just adjust the print statement accordingly in code snippets. i.e. in Python 3.x it would be print("hello"), and in Python 2.x it would be print "hello".
TL;DR
To use OpenCV fully with Anaconda (and Spyder IDE), we need to:
Download the OpenCV package from the official OpenCV site
Copy and paste the cv2.pyd to the Anaconda site-packages directory.
Set user environmental variables so that Anaconda knows where to find the FFMPEG utility.
Do some testing to confirm OpenCV and FFMPEG are now working.
(Read on for the detail instructions...)
Prerequisite
Install Anaconda
Anaconda is essentially a nicely packaged Python IDE that is shipped with tons of useful packages, such as NumPy, Pandas, IPython Notebook, etc. It seems to be recommended everywhere in the scientific community. Check out Anaconda to get it installed.
Install OpenCV-Python to Anaconda
Cautious Note: I originally tried out installing the binstar.org OpenCV package, as suggested. That method however does not include the FFMPEG codec - i.e. you may be able to use OpenCV, but you won't be able to process videos.
The following instruction works for me is inspired by this OpenCV YouTube video. So far I have got it working on both my desktop and laptop, both 64-bit machines and Windows 8.1.
Download OpenCV Package
Firstly, go to the official OpenCV site to download the complete OpenCV package. Pick a version you like (2.x or 3.x). I am on Python 2.x and OpenCV 3.x - mainly because this is how the OpenCV-Python Tutorials are setup/based on.
In my case, I've extracted the package (essentially a folder) straight to my C drive (C:\opencv).
Copy and Paste the cv2.pyd file
The Anaconda Site-packages directory (e.g. C:\Users\Johnny\Anaconda\Lib\site-packages in my case) contains the Python packages that you may import. Our goal is to copy and paste the cv2.pyd file to this directory (so that we can use the import cv2 in our Python codes.).
To do this, copy the cv2.pyd file...
From this OpenCV directory (the beginning part might be slightly different on your machine). For Python 3.x, I guess, just change the 2.x to 3.x accordingly.
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
To this Anaconda directory (the beginning part might be slightly different on your machine):
C:\Users\Johnny\Anaconda\Lib\site-packages
After performing this step we shall now be able to use import cv2 in Python code. BUT, we still need to do a little bit more work to get FFMPEG (video codec) to work (to enable us to do things like processing videos).
Set Environmental Variables
Right-click on "My Computer" (or "This PC" on Windows 8.1) → left-click Properties → left-click "Advanced" tab → left-click "Environment Variables..." button.
Add a new User Variable to point to the OpenCV (either x86 for 32-bit system or x64 for 64-bit system). I am currently on a 64-bit machine.
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
Append %OPENCV_DIR%\bin to the User Variable PATH.
For example, my PATH user variable looks like this...
Before:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
After:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
This is it we are done! FFMPEG is ready to be used!
Test to confirm
We need to test whether we can now do these in Anaconda (via Spyder IDE):
Import OpenCV package
Use the FFMPEG utility (to read/write/process videos)
Test 1: Can we import OpenCV?
To confirm that Anaconda is now able to import the OpenCV-Python package (namely, cv2), issue these in the IPython console:
import cv2
print cv2.__version__
If the package cv2 is imported OK with no errors, and the cv2 version is printed out, then we are all good! Here is a snapshot:
(source: mathalope.co.uk)
Test 2: Can we Use the FFMPEG codec?
Place a sample input_video.mp4 video file in a directory. We want to test whether we can:
read this .mp4 video file, and
write out a new video file (can be .avi or .mp4 etc.)
To do this we need to have a test Python code, call it test.py. Place it in the same directory as the sample input_video.mp4 file.
This is what test.py may look like (I've listed out both newer and older version codes here - do let us know which one works / not work for you!).
(Newer version...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(Or the older version...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
This test is VERY IMPORTANT. If you'd like to process video files, you'd need to ensure that Anaconda / Spyder IDE can use the FFMPEG (video codec). It took me days to have got it working. But I hope it would take you much less time! :)
Note: One more very important tip when using the Anaconda Spyder IDE. Make sure you check the current working directory (CWD)!!!
Conclusion
To use OpenCV fully with Anaconda (and Spyder IDE), we need to:
Download the OpenCV package from the official OpenCV site
Copy and paste the cv2.pyd to the Anaconda site-packages directory.
Set user environmental variables so that Anaconda knows where to find the FFMPEG utility.
Do some testing to confirm OpenCV and FFMPEG are now working.
Good luck!
You can install OpenCV by running these commands in the Anaconda command prompt:
conda config --add channels conda-forge
conda install libopencv opencv py-opencv
Source:
https://github.com/conda-forge/opencv-feedstock
It doesn't seem like the page you linked includes opencv any more. (Funny, I do recall it being included at a previous point as well.)
In any case, installation of OpenCV into Anaconda, although unavailable through conda, is pretty trivial. You just need to download one file.
Download OpenCV from https://opencv.org/releases/ and extract
From the extracted folder, copy the file from the extracted directory: opencv/build/python/2.7/(either x86 or x64, depending on your Anaconda version)/cv2.pyd to your Anaconda site-packages directory, e.g., C:\Anaconda\Lib\site-packages
To get FFmpeg within opencv to work, you'll have to add the directory that FFmpeg is located in to the path (e.g., opencv/sources/3rdparty/ffmpeg). Then you'll have to find the DLL file in that folder (e.g., opencv_ffmpeg_64.dll) and copy or rename it to a filename that includes the opencv version you are installing, (e.g., opencv_ffmpeg249_64) for 2.4.9.
Now at the Python prompt you should be able to type "import cv2"...to verify that it works, type "print cv2.__version__", and it should print out the OpenCV version you downloaded.
In May 2019, the answer is as follows for MacOS:
conda update freetype
conda install opencv -c conda-forge
This updates libfreetype.6.dylib to 24.0.0 compatibility and installs OpenCV 4.1.0.
The following installs opencv from conda-forge (note: tried on Windows)
conda config --add channels conda-forge
conda install opencv
To install OpenCV in Anaconda, start up the Anaconda command prompt
and install OpenCV with
conda install -c https://conda.anaconda.org/menpo opencv3
Test that it works in your Anaconda Spyder or IPython console with
import cv2
You can also check the installed version using:
cv2.__version__
To install OpenCv with conda on Windows-64 and Python 3.5, the only one that worked for me is:
conda install -c conda-forge opencv=3.1.0
I think the easiest option that should work cross-platform and across various versions of Anaconda is
#Run Anaconda Prompt as an Administrator (on Windows) & execute the command below
#(you may need to use sudo on a Unix-Based or Mac system
#to have the needed permissions)
conda install -c conda-forge opencv
I had exactly the same problem, and could not get conda to install OpenCV. However, I managed to install it with the OpenCV installer you find at this site:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
His files are "Wheel" whl files that can be installed with pip, e.g.
pip install SomePackage-1.0-py2.py3-none-any.whl
in a command window. It worked with Spyder directly after executing this command for me. I have had the same experience with other packages, the above UC Irvine site is a gold mine.
it works on anaconda3 windows 10 I have already downloaded it at 5 December 2019.
Firstly, using this command:
pip install opencv-contrib-python
after that windows will ask for permission and try again:
pip install opencv-contrib-python --user
look at this it works!!
In my case, I've python 3.9
I did this in my conda env and it works :
pip install opencv-python==3.4.15.55
pip install opencv-contrib-python==3.4.15.55
I entered the following command in the command prompt:
conda install -c menpo opencv=2.4.11
This worked for me!!!
On Linux, as discussed here, the best way to get opencv at present is from loopbio at conda-forge:
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv
If you have 'a modern CPU' there exists also a compiled version "enabling all modern CPU instruction set extensions [...] and against libjpeg-turbo":
conda install -c loopbio -c conda-forge -c pkgw-forge ffmpeg-feature ffmpeg gtk2 opencv-turbo`
Two of the solutions mentioned in other answers don't work unconditionally:
The conda you get through conda install opencv or pip install opencv-python doesn't have gtk2 support, so you can't display images through imshow.
Conda built by Menpo (conda install -c menpo opencv3) has gtk2 support, but
they have only built OpenCV 3.2 for Python 3.5, not Python 3.6
Ubuntu 16.10 has deprecated libpng12, leading to a missing dependency and the following error when trying to import cv2: ImportError: libpng12.so.0: cannot open shared object file: No such file or directory, as discussed here
EDIT: #Yamaneko points out that as of 14 June 2017, "there is an issue with loopbio's OpenCV version 3.2.0. It silently fails to read and write videos. It is due to a combination of an upstream OpenCV issue in combination with an old GCC. More details here. There is a PR on its way to solve the issue."
I just installed conda 4.7.11 in Windows 10. OpenCV can be easily installed in Anaconda Navigator. After launching Navigator, click on Environments on the left panel. In the top drop-down, select Not installed. Then search for py-opencv, tick on the left checkbox to install it. It will install the dependent package libopencv. I use import cv2 in Spyder to access it.
Like others, I had issues with Python 3.5.1/Anaconda 2.4.0 on OS X 10.11..
But I found a compatible package here:
https://anaconda.org/menpo/opencv3
It can be installed via the command line like so:
conda install -c https://conda.anaconda.org/menpo opencv3
Worked like a charm. First time I've ever gotten OpenCV to work on 3.x!
Windows only solution. OpenCV 3.x pip install for Python 3.x
Download .whl file (cpMN where you have Python M.N). contrib includes OpenCV-extra packages. For example, assuming you have Python 3.6 and Windows 64-bit, you might download opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl
From command prompt type:
pip install opencv_python‑3.2.0+contrib‑cp36‑cp36m‑win_amd64.whl
You'll have a package in your conda list : opencv-python 3.2.0+contrib <pip>
Now you could test it (no errors):
>>> import cv2
>>>
Original source page where I took the information is here.
If conda install opencv or conda install -c https://conda.binstar.org/menpo opencv does not work, you can try to compile from the source.
Download the source from http://opencv.org/downloads.html, follow the install instruction in http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html, (maybe you can jump to the last part directly, 'Building OpenCV from Source Using CMake...), change the cmake command as following:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/**/env/opencv-2.4.10 -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/home/**/env/anaconda/bin/python -D PYTHON_INCLUDE_DIR=/home/**/env/anaconda/include/python2.7 -D PYTHON_LIBRARY=/home/**/env/anaconda/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/home/**/env/anaconda/lib/python2.7/site-packages -D PYTHON_NUMPY_INCLUDE_DIRS=/home/**/env/anaconda/lib/python2.7/site-packages/numpy/core/include ..
make -j4
make install
You will find cv2.so in anaconda/lib/python2.7/site-packages.
Then:
import cv2
print cv2.__version__
It will print out 2.4.10.
My environment is GCC 4.4.6, Python 2.7 (anaconda), and opencv-2.4.10.
To install the OpenCV package with conda, run:
conda install -c menpo opencv3=3.1.0
https://anaconda.org/menpo/opencv3
Although not through Conda, and this is specific to Ubuntu, the easiest way to install OpenCV with all its contrib modules built in such as SIFT and SURF is to use:
pip install opencv-contrib-python
It supports Python2.7+ and Python 3.4+
If you choose not to have the contribs built in, you could instead do:
pip install opencv-python
You need to install the following dependencies below before you run those commands though:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
This is a good tutorial on setting OpenCV on Ubuntu:
https://medium.com/#debugvn/installing-opencv-3-3-0-on-ubuntu-16-04-lts-7db376f93961
To insatll opencv without downgrading just hit out this in terminal
particularly the user of linux mint or Ubuntu based distro
conda install -c conda-forge opencv
Hence go with it I am pretty sure that this will not disappoint you.
An easy and straight forward solution is to install python3.5 first before installing opencv3
conda install python=3.5
followed by
conda install --channel https://conda.anaconda.org/menpo opencv3
The correct command for installing the current version of OpenCV 3.3 in Anaconda windows:
conda install -c conda-forge opencv
or
conda install -c conda-forge/label/broken opencv
For 3.2 use this:
conda install -c menpo opencv3
I tried following command and it works fine
conda install -c conda-forge opencv
once you hit the command it will ask for yes or no
If you select yes it will proceed and install all the required packages
One thing i think nobody mentioned is that if you are using Windows N or KN edition, please install Media Feature Pack that is used for OpenCV.
Also make sure you have Visual C++ Distributable
installed.
And then you can use command
conda install -c menpo opencv
The following command works for me too. I am using an embedded IPython Notebook in Anaconda.
conda install -c https://conda.binstar.org/menpo opencv
I have just tried on two Win32 Python 3.5 computers. At first, I was able to conda install opencv, but it didn't work nor did the version from menpp, but this did:
conda install -c https://conda.binstar.org/conda-forge opencv
I had steps in repo that will help you properly install OpenCV.
If the links if broken, see this.
For requirements and prerequisites follow this instructions:
YOU NEED TO HAVE WINDOWS OS to begin this project.
windows 7 to 10
Follow the steps carefully
Install Anaconda2 32/64 python 2
or
Install Anaconda3 32/64 python 3
It Depends on System Information
Along the way you must check all the options ignore the red text
Then wait till installation completed ...
Open CMD admin when finish installed
Make sure that the anaconda-python is configured in CMD admin
Type: python
This will come out:
C:\WINDOWS\system32>python Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:27:45)
[MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
Next is to install packages:
Numpy
OpenCV
PyMySQL or pymysql
Install and Import OpenCV
conda install -c conda-forge opencv = (version optional)
(click yes if there's updates)
Install and Import Numpy
pip install numpy
(click yes if there's updates)
Install and Import PyMySQL/pymysql
pip install PyMySQL or pymysql
When all the package is completely installed, then you must Reboot it.
go to CMD admin again
type "python"
import cv2 (cv2 is OpenCV)
import Numpy or numpy
import pymysql
import os
from PIL from Image
if all of then is ok.. your ready to run the code!!
After you finish all the steps, you can now test the code in SPYDER python that I use