Skip to content

Instantly share code, notes, and snippets.

@akashjobanputra
Last active February 5, 2020 16:47
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save akashjobanputra/c3339a5afe4a97f1c2d6cd32d3ce365e to your computer and use it in GitHub Desktop.
Save akashjobanputra/c3339a5afe4a97f1c2d6cd32d3ce365e to your computer and use it in GitHub Desktop.
OpenCV from source for Conda env

Required things to build opencv3 from source for anaconda env

libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk-3-dev libgtk2.0-dev libdc1394-22-dev libavcodec-dev libgphoto2-dev libavresample-dev libswscale-dev libavformat-dev libgoogle-glog-dev libprotobuf-dev
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX="/home/$USER/miniconda3/envs/ML" \
-DOPENCV_EXTRA_MODULES_PATH="../../opencv3_contrib/modules" \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_opencv_dnn=ON \
-DTINYDNN_USE_NNPACK=OFF \
-DTINYDNN_USE_TBB=ON \
-DTINYDNN_USE_OMP=ON \
-DENABLE_FAST_MATH=ON \
-DWITH_OPENMP=ON \
-DWITH_TBB=ON \
-DWITH_JPEG=OFF \
-DWITH_IPP=OFF \
-DMKL_WITH_TBB=ON \
-DMKL_WITH_OPENMP=ON \
-DCMAKE_CXX_COMPILER="/usr/bin/g++" \
-DCMAKE_C_COMPILER="/usr/bin/gcc" \
-DWITH_CUBLAS=ON \
-DBUILD_opencv_python2=OFF \
-DPYTHON_EXECUTABLE="/home/$USER/miniconda3/envs/ML/bin/python" \
-DPYTHON_LIBRARY="/home/$USER/miniconda3/envs/ML/lib/python3.5" \
-DPYTHON3_LIBRARY="/home/$USER/miniconda3/envs/ML/lib/python3.5" \
-DPYTHON3_EXECUTABLE="/home/$USER/miniconda3/envs/ML/bin/python" \
-DPYTHON3_INCLUDE_DIR="/home/$USER/miniconda3/envs/ML/include/python3.5m" \
-DPYTHON3_INCLUDE_DIR2="/home/$USER/miniconda3/envs/ML/include" \
-DPYTHON3_NUMPY_INCLUDE_DIRS="/home/$USER/miniconda3/envs/ML/lib/python3.5/site-packages/numpy/core/include" \
-DPYTHON3_INCLUDE_PATH="/home/$USER/miniconda3/envs/ML/include/python3.5m" \
-DPYTHON3_LIBRARIES="/home/$USER/miniconda3/envs/ML/lib/libpython3.5m.so" \
-DHDF5_C_LIBRARY_z="/home/$USER/miniconda3/envs/ML/lib/libz.so" \
..
######################################
# INSTALL OPENCV ON UBUNTU OR DEBIAN #
######################################
# | THIS SCRIPT IS TESTED CORRECTLY ON |
# |----------------------------------------------------|
# | OS | OpenCV | Test | Last test |
# |----------------|--------------|------|-------------|
# | Ubuntu 16.04.2 | OpenCV 3.2.0 | OK | 20 May 2017 |
# | Debian 8.8 | OpenCV 3.2.0 | OK | 20 May 2017 |
# | Debian 9.0 | OpenCV 3.2.0 | OK | 25 Jun 2017 |
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt-get -y autoremove
# 2. INSTALL THE DEPENDENCIES
# Build tools:
sudo apt-get install -y build-essential cmake
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
sudo apt-get install -y qt5-default libvtk6-dev
# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev
# Python:
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
# Java:
# sudo apt-get install -y ant default-jdk
# Documentation:
sudo apt-get install -y doxygen
# Prerequisites
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk-3-dev libgtk2.0-dev libdc1394-22-dev libavcodec-dev libgphoto2-dev libavresample-dev libswscale-dev libavformat-dev libgoogle-glog-dev libprotobuf-dev
# 3. INSTALL THE LIBRARY (YOU CAN CHANGE '3.2.0' FOR THE LAST STABLE VERSION)
sudo apt-get install -y unzip wget
wget -c https://github.com/opencv/opencv/archive/3.2.0.zip -O opencv320.zip
wget -c https://github.com/opencv/opencv_contrib/archive/3.2.0.zip -O opencv320_contrib.zip
unzip opencv320.zip
unzip opencv320_contrib.zip
rm opencv320.zip
rm opencv320_contrib.zip
mv opencv-3.2.0 OpenCV
mv opencv_contrib-3.2.0 opencv3_contrib
cd OpenCV
mkdir build
cd build
# -DWITH_OPENGL=ON \
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX="/usr/local" \
-DOPENCV_EXTRA_MODULES_PATH="../../opencv3_contrib/modules" \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_opencv_dnn=ON \
-DTINYDNN_USE_NNPACK=OFF \
-DTINYDNN_USE_TBB=ON \
-DTINYDNN_USE_OMP=ON \
-DENABLE_FAST_MATH=ON \
-DWITH_OPENMP=ON \
-DWITH_TBB=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_JPEG=ON \
-DWITH_IPP=OFF \
-DWITH_QT=ON \
-DMKL_WITH_TBB=ON \
-DMKL_WITH_OPENMP=ON \
-DCMAKE_CXX_COMPILER="/usr/bin/g++" \
-DCMAKE_C_COMPILER="/usr/bin/gcc" \
-DWITH_CUBLAS=ON \
-DBUILD_opencv_python2=OFF \
-DPYTHON_EXECUTABLE="/usr/bin/python3" \
-DPYTHON_LIBRARY="/usr/lib/python3.5" \
-DPYTHON3_LIBRARY="/usr/lib/python3.5" \
-DPYTHON3_EXECUTABLE="/usr/bin/python3" \
-DPYTHON3_INCLUDE_DIR="/usr/include/python3.5m" \
-DPYTHON3_INCLUDE_DIR2="/usr/include" \
-DPYTHON3_NUMPY_INCLUDE_DIRS="/usr/local/lib/python3.5/dist-packages/numpy/core/include" \
-DPYTHON3_INCLUDE_PATH="/usr/include/python3.5m" \
-DPYTHON3_LIBRARIES="/usr/lib/x86_64-linux-gnu/libpython3.5m.so" \
-DHDF5_C_LIBRARY_z="/usr/lib/x86_64-linux-gnu/libz.so" \
..
# FOR PI: arm-linux-gnueabihf
# -DPYTHON3_LIBRARIES="/usr/lib/arm-linux-gnueabihf/libpython3.5m.so" \
# -DHDF5_C_LIBRARY_z="/usr/lib/arm-linux-gnueabihf/libz.so" \
# FOR x86_64 systems:
# -DPYTHON3_LIBRARIES="/usr/lib/x86_64-linux-gnu/libpython3.5m.so" \
# -DHDF5_C_LIBRARY_z="/usr/lib/x86_64-linux-gnu/libz.so" \
make -j4
sudo make install
sudo ldconfig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment