123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #!/bin/bash
- ############## WELCOME #############
- # Get command line argument for verbose
- echo "Welcome to OpenCV Installation Script for Raspbian Stretch"
- echo "This script is provided by LearnOpenCV.com"
- echo "Maintained by Vishwesh Ravi Shrimali (vishweshshrimali5@gmail.com)"
- echo "Preparing system for installation..."
- sudo apt-get -y purge wolfram-engine
- sudo apt-get -y purge libreoffice*
- sudo apt-get -y clean
- sudo apt-get -y autoremove
- ######### VERBOSE ON ##########
- # Step 0: Take inputs
- echo "OpenCV installation by learnOpenCV.com"
- cvVersion="master"
- # Clean build directories
- rm -rf opencv/build
- rm -rf opencv_contrib/build
- # Create directory for installation
- mkdir installation
- mkdir installation/OpenCV-"$cvVersion"
- # Save current working directory
- cwd=$(pwd)
- # Step 1: Update packages
- echo "Updating packages"
- sudo apt-get -y update
- sudo apt-get -y upgrade
- echo "================================"
- echo "Complete"
- # Step 2: Install OS libraries
- echo "Installing OS libraries"
- sudo apt-get -y remove x264 libx264-dev
- ## Install dependencies
- sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
- sudo apt-get -y install git gfortran
- sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev
- sudo apt-get -y install libtiff5-dev
- sudo apt-get -y install libtiff-dev
- sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
- sudo apt-get -y install libxine2-dev libv4l-dev
- cd /usr/include/linux
- sudo ln -s -f ../libv4l1-videodev.h videodev.h
- cd $cwd
- sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
- sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default
- sudo apt-get -y install libatlas-base-dev
- sudo apt-get -y install libmp3lame-dev libtheora-dev
- sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev
- sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev
- sudo apt-get -y install libavresample-dev
- sudo apt-get -y install x264 v4l-utils
- # Optional dependencies
- sudo apt-get -y install libprotobuf-dev protobuf-compiler
- sudo apt-get -y install libgoogle-glog-dev libgflags-dev
- sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
- echo "================================"
- echo "Complete"
- # Step 3: Install Python libraries
- echo "Install Python libraries"
- sudo apt-get -y install python3-dev python3-pip python3-venv
- sudo -H pip3 install -U pip numpy
- sudo apt-get -y install python3-testresources
- # Install virtual environment
- python3 -m venv OpenCV-"$cvVersion"-py3
- echo "# Virtual Environment Wrapper" >> ~/.bashrc
- echo "alias workoncv-$cvVersion=\"source $cwd/OpenCV-$cvVersion-py3/bin/activate\"" >> ~/.bashrc
- source "$cwd"/OpenCV-"$cvVersion"-py3/bin/activate
- echo "================================"
- echo "Complete"
- echo "Creating Python environments"
- ############ For Python 3 ############
- # create virtual environment
- mkvirtualenv OpenCV-"$cvVersion"-py3 -p python3
- workon OpenCV-"$cvVersion"-py3
- # now install python libraries within this virtual environment
- sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/g' /etc/dphys-swapfile
- sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- pip install numpy dlib
- # quit virtual environment
- deactivate
- ######################################
- echo "================================"
- echo "Complete"
- # Step 4: Download opencv and opencv_contrib
- echo "Downloading opencv and opencv_contrib"
- git clone https://github.com/opencv/opencv.git
- cd opencv
- git checkout master
- cd ..
- git clone https://github.com/opencv/opencv_contrib.git
- cd opencv_contrib
- git checkout master
- cd ..
- echo "================================"
- echo "Complete"
- # Step 5: Compile and install OpenCV with contrib modules
- echo "================================"
- echo "Compiling and installing OpenCV with contrib modules"
- cd opencv
- mkdir build
- cd build
- cmake -D CMAKE_BUILD_TYPE=RELEASE \
- -D CMAKE_INSTALL_PREFIX=$cwd/installation/OpenCV-"$cvVersion" \
- -D INSTALL_C_EXAMPLES=ON \
- -D INSTALL_PYTHON_EXAMPLES=ON \
- -D WITH_TBB=ON \
- -D ENABLE_NEON=ON \
- -D ENABLE_VFPV3=ON \
- -D WITH_V4L=ON \
- -D OPENCV_PYTHON3_INSTALL_PATH=$cwd/OpenCV-$cvVersion-py3/lib/python3.5/site-packages \
- -D WITH_QT=ON \
- -D WITH_OPENGL=ON \
- -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
- -D BUILD_EXAMPLES=ON ..
- make -j$(nproc)
- make install
- cd $cwd
- sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/g' /etc/dphys-swapfile
- sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- echo "sudo modprobe bcm2835-v4l2" >> ~/.profile
|