From fcdd83305974ce8870a7ed961a1e1d426bfe46a5 Mon Sep 17 00:00:00 2001 From: Akhilesh Kumar Date: Tue, 14 Nov 2017 16:14:01 +0530 Subject: [PATCH] Merge pull request #10056 from akhilesh-k:master Added Python setup docs for Ubuntu Machines (#10056) --- .../py_setup_in_ubuntu.markdown | 165 ++++++++++++++++++ .../py_table_of_contents_setup.markdown | 5 + 2 files changed, 170 insertions(+) create mode 100644 doc/py_tutorials/py_setup/py_setup_in_ubuntu/py_setup_in_ubuntu.markdown diff --git a/doc/py_tutorials/py_setup/py_setup_in_ubuntu/py_setup_in_ubuntu.markdown b/doc/py_tutorials/py_setup/py_setup_in_ubuntu/py_setup_in_ubuntu.markdown new file mode 100644 index 0000000000..e50bb36de1 --- /dev/null +++ b/doc/py_tutorials/py_setup/py_setup_in_ubuntu/py_setup_in_ubuntu.markdown @@ -0,0 +1,165 @@ +Install OpenCV-Python in Ubuntu {#tutorial_py_setup_in_ubuntu} +=============================== + +Goals +----- + +In this tutorial We will learn to setup OpenCV-Python in Ubuntu System. +Below steps are tested for Ubuntu 16.04 (64-bit) and Ubuntu 14.04 (32-bit). + +OpenCV-Python can be installed in Ubuntu in two ways: +- Install from pre-built binaries available in Ubuntu repositories +- Compile from the source. In this section, we will see both. + +Another important thing is the additional libraries required. +OpenCV-Python requires only **Numpy** (in addition to other dependencies, which we will see later). +But in this tutorials, we also use **Matplotlib** for some easy and nice plotting purposes (which I feel much better compared to OpenCV). +Matplotlib is optional, but highly recommended. +Similarly we will also see **IPython**, an Interactive Python Terminal, which is also highly recommended. + +Installing OpenCV-Python from Pre-built Binaries +------------------------------------------------ + +This method serves best when using just for programming and developing OpenCV applications. + +Install package [python-opencv](https://packages.ubuntu.com/trusty/python-opencv) with following command in terminal (as root user). + +``` +$ sudo apt-get install python-opencv +``` + +Open Python IDLE (or IPython) and type following codes in Python terminal. + +``` +import cv2 +print(cv2.__version__) +``` + +If the results are printed out without any errors, congratulations !!! +You have installed OpenCV-Python successfully. + +It is quite easy. But there is a problem with this. +Apt repositories may not contain the latest version of OpenCV always. +For example, at the time of writing this tutorial, apt repository contains 2.4.8 while latest OpenCV version is 3.x. +With respect to Python API, latest version will always contain much better support and latest bug fixes. + +So for getting latest source codes preference is next method, i.e. compiling from source. +Also at some point in time, if you want to contribute to OpenCV, you will need this. + +Building OpenCV from source +--------------------------- + +Compiling from source may seem a little complicated at first, but once you succeeded in it, there is nothing complicated. + +First we will install some dependencies. +Some are required, some are optional. +You can skip optional dependencies if you don't want. + +### Required build dependencies + +We need **CMake** to configure the installation, **GCC** for compilation, **Python-devel** and +**Numpy** for building Python bindings etc. + +``` +sudo apt-get install cmake +sudo apt-get install python-devel numpy +sudo apt-get install gcc gcc-c++ +``` + +Next we need **GTK** support for GUI features, Camera support (libv4l), Media Support +(ffmpeg, gstreamer) etc. + +``` +sudo apt-get install gtk2-devel +sudo apt-get install libv4l-devel +sudo apt-get install ffmpeg-devel +sudo apt-get install gstreamer-plugins-base-devel +``` + +### Optional Dependencies + +Above dependencies are sufficient to install OpenCV in your Ubuntu machine. +But depending upon your requirements, you may need some extra dependencies. +A list of such optional dependencies are given below. You can either leave it or install it, your call :) + +OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. +But it may be a little old. +If you want to get latest libraries, you can install development files for system libraries of these formats. + +``` +sudo apt-get install libpng-devel +sudo apt-get install libjpeg-turbo-devel +sudo apt-get install jasper-devel +sudo apt-get install openexr-devel +sudo apt-get install libtiff-devel +sudo apt-get install libwebp-devel +``` + +### Downloading OpenCV + +To download the latest source from OpenCV's [GitHub Repository](https://github.com/opencv/opencv). +(If you want to contribute to OpenCV choose this. For that, you need to install **Git** first) + +``` +$ sudo apt-get install git +$ git clone https://github.com/opencv/opencv.git +``` + +It will create a folder "opencv" in current directory. +The cloning may take some time depending upon your internet connection. + +Now open a terminal window and navigate to the downloaded "opencv" folder. +Create a new "build" folder and navigate to it. + +``` +$ mkdir build +$ cd build +``` + +### Configuring and Installing + +Now we have all the required dependencies, let's install OpenCV. +Installation has to be configured with CMake. +It specifies which modules are to be installed, installation path, which additional libraries to be used, whether documentation and examples to be compiled etc. +Most of this work are done automatically with well configured default parameters. + +Below command is normally used for configuration of OpenCV library build (executed from build folder): + +``` +$ cmake ../ +``` + +OpenCV defaults assume "Release" build type and installation path is "/usr/local". +For additional information about CMake options refer to OpenCV @ref tutorial_linux_install "C++ compilation guide": + +You should see these lines in your CMake output (they mean that Python is properly found): + +``` +-- Python 2: +-- Interpreter: /usr/bin/python2.7 (ver 2.7.6) +-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6) +-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2) +-- packages path: lib/python2.7/dist-packages +-- +-- Python 3: +-- Interpreter: /usr/bin/python3.4 (ver 3.4.3) +-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3) +-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2) +-- packages path: lib/python3.4/dist-packages +``` + +Now you build the files using "make" command and install it using "make install" command. + +``` +$ make +# sudo make install +``` + +Installation is over. +All files are installed in "/usr/local/" folder. +Open a terminal and try import "cv2". + +``` +import cv2 +print(cv2.__version__) +``` diff --git a/doc/py_tutorials/py_setup/py_table_of_contents_setup.markdown b/doc/py_tutorials/py_setup/py_table_of_contents_setup.markdown index 93491cb0a9..a5ea46d750 100644 --- a/doc/py_tutorials/py_setup/py_table_of_contents_setup.markdown +++ b/doc/py_tutorials/py_setup/py_table_of_contents_setup.markdown @@ -15,3 +15,8 @@ Introduction to OpenCV {#tutorial_py_table_of_contents_setup} Set Up OpenCV-Python in Fedora + +- @subpage tutorial_py_setup_in_ubuntu + + Set Up + OpenCV-Python in Ubuntu