Each Answer to this Q is separated by one/two green lines.
I want to install OpenCV for python3 in ubuntu 16.04. Fist I tried running
sudo apt-get install python3-opencv which is how I pretty much install all of my python software. This could not find a repository. The install does work however if I do
sudo apt-get install python-opencv this issue with this is that by not adding the three to python it installs for python 2 which I do not use. I would really perfer not to have to build and install from source so is there a way I can get a repository? I also tried installing it with pip3 and it could not find it either.
Well this will be a lengthy answer, so let’s start :
Step 1: Install prerequisites :
Upgrade any pre-installed packages:
$ sudo apt-get update $ sudo apt-get upgrade
Install developer tools used to compile OpenCV 3.0:
$ sudo apt-get install build-essential cmake git pkg-config
Install libraries and packages used to read various image and videos formats from disk:
$ sudo apt-get install libjpeg8-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
Install GTK so we can use OpenCV’s GUI features:
$ sudo apt-get install libgtk2.0-dev
Install packages that are used to optimize various functions inside OpenCV, such as matrix operations:
$ sudo apt-get install libatlas-base-dev gfortran
Step 2: Setup Python (Part 1)
Let’s download pip , a Python package manager, installed for Python 3:
$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python3 get-pip.py
Let’s use our fresh pip3 install to setup virtualenv and virtualenvwrapper :
$ sudo pip3 install virtualenv virtualenvwrapper
Now we can update our ~/.bashrc file (place at the bottom of the file):
# virtualenv and virtualenvwrapper export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh $ source ~/.bashrc $ mkvirtualenv cv
Step 2: Setup Python (Part 2)
we’ll need to install the Python 3.4+ headers and development files:
$ sudo apt-get install python3.4-dev
OpenCV represents images as NumPy arrays, so we need to install NumPy into our cv virtual environment:
$ pip install numpy
Step 3: Build and install OpenCV 3.0 with Python 3.4+ bindings
$ cd ~ $ git clone https://github.com/opencv/opencv.git $ cd opencv $ git checkout 3.0.0 $ cd ~ $ git clone https://github.com/opencv/opencv_contrib.git $ cd opencv_contrib $ git checkout 3.0.0
Time to setup the build:
$ cd ~/opencv $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..
Let’s start OpenCV compile process :
$ make -j4
Assuming OpenCV 3.0 compiled without error, you can now install it on your system:
$ sudo make install $ sudo ldconfig
Step 4: Sym-link OpenCV 3.0
If you’ve reached this step, OpenCV 3.0 should now be installed in
Here, our OpenCV bindings are stored under the name
However, in order to use OpenCV 3.0 within our cv virtual environment, we first need to sym-link OpenCV into the site-packages directory of the cv environment, like this: (Be sure to take note of
$ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/ $ ln -s /usr/local/lib/python3.4/site-packages/cv2.cpython-34m.so cv2.so
Notice how I am changing the name from cv2.cpython-34m.so to cv2.so — this is so Python can import our OpenCV bindings using the name cv2 .
Step 5: Test out the OpenCV 3.0 and Python 3.4+ install
$ workon cv $ python >>> import cv2 >>> cv2.__version__ '3.0.0'
Hope that helps. Also, credit to Adrian Rosebrock on his post. It worked for me as a charm.
I found this:
OpenCV on wheels
‘Unofficial OpenCV packages for Python.’
Installation was painless for Ubuntu 16.04
pip3 install opencv-python
Check the installation
python3 Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.2.0'
Not sure why this wasn’t mentioned. Perhaps it is newly available?
Assuming that you installed Python3.x, I resolved it using the following:
1: Install side packages required for OpenCV with Ubuntu (only validated for: Ubuntu 16.04):
apt-get update apt-get install -y libglib2.0.0 libsm6 apt-get install libxext6 apt-get install -y libxrender-dev
2: Install OpenCV on python3.x:
pip3 install opencv-contrib-python
Using conda inside a python3 environment:
First install conda in a python3 environment and activate it if you haven’t yet:
conda create --name py3k python=3 source activate py3k
Now you can install opencv in the conda environment:
pip install pillow conda install -c menpo opencv3=3.1.0
To import in Python:
Ubuntu 18.04 and later
In Ubuntu 18.04 and later Python 3 bindings for the OpenCV (Open Computer Vision) library can be installed from the default Ubuntu repositories with the following command:
sudo apt install python3-opencv
The Open Computer Vision Library is a collection of algorithms and sample code for various computer vision problems. The library is compatible with IPL (Intel’s Image Processing Library) and, if available, can use IPP (Intel’s Integrated Performance Primitives) for better performance.
This is because you have multiple installations of python in your machine.You should make python3 the default, because by default is the python2.7
The popular suggested solution worked miracles for me, where sudo apt install of opencv failed to install properly. Another note on step 4 (which may make life easier for others). It seems simple now but it took me quite a while to troubleshoot (because I am new to this).
Step 4a: Run the following code to find out where the cv2 file is installed. Your filename may also be slightly different. Just because you can’t find it where the OP said it would be, that doesn’t mean the installation did not work.
> $ find /usr/ -iname cv2.* > /usr/lib/python3/dist-packages/cv2.cpython-38-x86_64-linux-gnu.so
Step 4b: SymLink OpenCV 3.0 as above
> $ cd ~/anaconda3/virtualenv/lib/python3.8/site-packages/ > $ ln -s /usr/lib/python3/dist-packages/cv2.cpython-38-x86_64-linux-gnu.so cv2.so
After ubuntu 18.04, use
sudo apt install python3-opencv
Careful, autostart Anaconda enviroment may cover normal apt installation, which took me hours to find. put it down here in case some newbie like me find it not working.
sudo pip3 install opencv-python opencv-contrib-python