installOpenCV-4-raspberry-pi.sh 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #!/bin/bash
  2. ############## WELCOME #############
  3. # Get command line argument for verbose
  4. echo "Welcome to OpenCV Installation Script for Raspbian Stretch"
  5. echo "This script is provided by LearnOpenCV.com"
  6. echo "Maintained by Vishwesh Ravi Shrimali (vishweshshrimali5@gmail.com)"
  7. echo "Preparing system for installation..."
  8. sudo apt-get -y purge wolfram-engine
  9. sudo apt-get -y purge libreoffice*
  10. sudo apt-get -y clean
  11. sudo apt-get -y autoremove
  12. ######### VERBOSE ON ##########
  13. # Step 0: Take inputs
  14. echo "OpenCV installation by learnOpenCV.com"
  15. cvVersion="master"
  16. # Clean build directories
  17. rm -rf opencv/build
  18. rm -rf opencv_contrib/build
  19. # Create directory for installation
  20. mkdir installation
  21. mkdir installation/OpenCV-"$cvVersion"
  22. # Save current working directory
  23. cwd=$(pwd)
  24. # Step 1: Update packages
  25. echo "Updating packages"
  26. sudo apt-get -y update
  27. sudo apt-get -y upgrade
  28. echo "================================"
  29. echo "Complete"
  30. # Step 2: Install OS libraries
  31. echo "Installing OS libraries"
  32. sudo apt-get -y remove x264 libx264-dev
  33. ## Install dependencies
  34. sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
  35. sudo apt-get -y install git gfortran
  36. sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev
  37. sudo apt-get -y install libtiff5-dev
  38. sudo apt-get -y install libtiff-dev
  39. sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
  40. sudo apt-get -y install libxine2-dev libv4l-dev
  41. cd /usr/include/linux
  42. sudo ln -s -f ../libv4l1-videodev.h videodev.h
  43. cd $cwd
  44. sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
  45. sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default
  46. sudo apt-get -y install libatlas-base-dev
  47. sudo apt-get -y install libmp3lame-dev libtheora-dev
  48. sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev
  49. sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev
  50. sudo apt-get -y install libavresample-dev
  51. sudo apt-get -y install x264 v4l-utils
  52. # Optional dependencies
  53. sudo apt-get -y install libprotobuf-dev protobuf-compiler
  54. sudo apt-get -y install libgoogle-glog-dev libgflags-dev
  55. sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
  56. echo "================================"
  57. echo "Complete"
  58. # Step 3: Install Python libraries
  59. echo "Install Python libraries"
  60. sudo apt-get -y install python3-dev python3-pip python3-venv
  61. sudo -H pip3 install -U pip numpy
  62. sudo apt-get -y install python3-testresources
  63. # Install virtual environment
  64. python3 -m venv OpenCV-"$cvVersion"-py3
  65. echo "# Virtual Environment Wrapper" >> ~/.bashrc
  66. echo "alias workoncv-$cvVersion=\"source $cwd/OpenCV-$cvVersion-py3/bin/activate\"" >> ~/.bashrc
  67. source "$cwd"/OpenCV-"$cvVersion"-py3/bin/activate
  68. echo "================================"
  69. echo "Complete"
  70. echo "Creating Python environments"
  71. ############ For Python 3 ############
  72. # create virtual environment
  73. mkvirtualenv OpenCV-"$cvVersion"-py3 -p python3
  74. workon OpenCV-"$cvVersion"-py3
  75. # now install python libraries within this virtual environment
  76. sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/g' /etc/dphys-swapfile
  77. sudo /etc/init.d/dphys-swapfile stop
  78. sudo /etc/init.d/dphys-swapfile start
  79. pip install numpy dlib
  80. # quit virtual environment
  81. deactivate
  82. ######################################
  83. echo "================================"
  84. echo "Complete"
  85. # Step 4: Download opencv and opencv_contrib
  86. echo "Downloading opencv and opencv_contrib"
  87. git clone https://github.com/opencv/opencv.git
  88. cd opencv
  89. git checkout master
  90. cd ..
  91. git clone https://github.com/opencv/opencv_contrib.git
  92. cd opencv_contrib
  93. git checkout master
  94. cd ..
  95. echo "================================"
  96. echo "Complete"
  97. # Step 5: Compile and install OpenCV with contrib modules
  98. echo "================================"
  99. echo "Compiling and installing OpenCV with contrib modules"
  100. cd opencv
  101. mkdir build
  102. cd build
  103. cmake -D CMAKE_BUILD_TYPE=RELEASE \
  104. -D CMAKE_INSTALL_PREFIX=$cwd/installation/OpenCV-"$cvVersion" \
  105. -D INSTALL_C_EXAMPLES=ON \
  106. -D INSTALL_PYTHON_EXAMPLES=ON \
  107. -D WITH_TBB=ON \
  108. -D ENABLE_NEON=ON \
  109. -D ENABLE_VFPV3=ON \
  110. -D WITH_V4L=ON \
  111. -D OPENCV_PYTHON3_INSTALL_PATH=$cwd/OpenCV-$cvVersion-py3/lib/python3.5/site-packages \
  112. -D WITH_QT=ON \
  113. -D WITH_OPENGL=ON \
  114. -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
  115. -D BUILD_EXAMPLES=ON ..
  116. make -j$(nproc)
  117. make install
  118. cd $cwd
  119. sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/g' /etc/dphys-swapfile
  120. sudo /etc/init.d/dphys-swapfile stop
  121. sudo /etc/init.d/dphys-swapfile start
  122. echo "sudo modprobe bcm2835-v4l2" >> ~/.profile