Ubuntu, how to install OpenCV for python3?

Question:

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.

Asked By: chasep255

||

Answers:

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

Answered By: makoulis

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 /usr/local/lib/python3.4/site-packages/.

Here, our OpenCV bindings are stored under the name cv2.cpython-34m.so

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 cv2.cpython-34m.so)

$ 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.

Answered By: Vtik

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:

import cv2
Answered By: k26dr

I found this:

https://pypi.python.org/pypi/opencv-python

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?

Answered By: Trevor
sudo pip3 install opencv-python opencv-contrib-python
Answered By: Js541

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.

Answered By: karel

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
Answered By: Robin

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
Answered By: Fiza

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.

Answered By: tothedistance
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.