├── Experience ├── CheckInstallRequirement ├── Citation.txt ├── OpenCv CheckInstall Command ├── OpenGLSample └── Raspberry Pi 3 and 4 Setup.txt ├── README.md ├── StepForBuilding ├── 4.1.2 │ ├── StepFor4.1.2 │ ├── build-opencv.sh │ ├── download-opencv.sh │ └── install-deps.sh ├── 4.3.0 │ ├── README │ ├── StepFor4.3.0 │ ├── build-opencv.sh │ ├── download-opencv.sh │ └── install-deps.sh └── 4.5.0 │ ├── compile.sh │ ├── download.sh │ └── stepfor4.5.0 ├── opencv_4.1.2-1_armhf.deb ├── opencv_4.3.0-1_armhf.deb └── opencv_4.5.0-1_armhf.deb /Experience/CheckInstallRequirement: -------------------------------------------------------------------------------- 1 | devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default,libglu1-mesa-dev,freeglut3-dev,mesa-common-dev -------------------------------------------------------------------------------- /Experience/Citation.txt: -------------------------------------------------------------------------------- 1 | Installation guide mostly from 2 | https://gist.github.com/willprice/abe456f5f74aa95d7e0bb81d5a710b60 3 | https://www.learnopencv.com/install-opencv-4-on-raspberry-pi/ 4 | https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 5 | https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/ 6 | -------------------------------------------------------------------------------- /Experience/OpenCv CheckInstall Command: -------------------------------------------------------------------------------- 1 | checkinstall --install=no --pkgname=opencv --pkgversion=4.1.2 --provides=opencv --nodoc --backup=no --exclude=$HOME --requires="devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default,libglu1-mesa-dev,freeglut3-dev,mesa-common-dev" 2 | -------------------------------------------------------------------------------- /Experience/OpenGLSample: -------------------------------------------------------------------------------- 1 | http://www.codebind.com/linux-tutorials/install-opengl-ubuntu-linux/ 2 | sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev 3 | 4 | 5 | add following line to link.txt 6 | -lGL -lGLU -L/usr/include/GL 7 | /home/pi/opencv/opencv-4.1.2/build/samples/cpp/CMakeFiles/example_cpp_detect_mser.dir/link.txt 8 | /home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl_interop.dir/link.txt 9 | /home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl.dir/link.txt 10 | 11 | /home/pi/opencv/opencv-4.1.2/build/samples/cpp/CMakeFiles/example_cpp_detect_mser.dir 12 | http://www.makble.com/undefined-reference-to-glulookat-how-to-fix-in-mingw-on-windows 13 | -lopengl32 -lglu32 14 | 15 | https://unix.stackexchange.com/questions/423821/gcc-usr-bin-ld-cannot-find-lglut32-lopengl32-lglu32-lfreegut-but-these 16 | cd /usr/include/GL -------------------------------------------------------------------------------- /Experience/Raspberry Pi 3 and 4 Setup.txt: -------------------------------------------------------------------------------- 1 | ***Install opencv 2 | # https://gist.github.com/willprice/abe456f5f74aa95d7e0bb81d5a710b60#file-test-py 3 | 4 | # extra package https://www.learnopencv.com/install-opencv-4-on-raspberry-pi/ 5 | $ chmod +x *.sh 6 | $ ./download-opencv.sh 7 | $ ./install-deps.sh 8 | $ ./build-opencv.sh 9 | 10 | ##Fix 4.1.1 build issue 11 | #https://github.com/opencv/opencv/issues/15192 12 | # add -latomic to modules/python3/CMakeFiles/opencv_python3.dir/link.txt 13 | $ cd ~/opencv/opencv-4.1.1/build 14 | #make clean 15 | 16 | # Change Swap before make to avoid raspberry pi hang during make 17 | $ sudo nano /etc/dphys-swapfile 18 | sudo dphys-swapfile setup 19 | set CONF_SWAPSIZE=100 to 512 with the Nano text editor 20 | $ sudo /etc/init.d/dphys-swapfile stop 21 | $ sudo /etc/init.d/dphys-swapfile start 22 | 23 | make 24 | 25 | #make debian package 26 | checkinstall --install=no --pkgname=opencv-4.1.1 --pkgversion=4.1.1 --provides=opencv --nodoc --backup=no --exclude=$HOME ----requires="devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default" 27 | 28 | # sudo make install 29 | # checkinstall to make debian package https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 30 | # checkinstall bug https://github.com/opencv/opencv/issues/8897 31 | git clone https://github.com/giuliomoro/checkinstall 32 | cd checkinstall 33 | make install 34 | 35 | # C++ check 36 | $ pkg-config --modversion opencv4 37 | 38 | # Python 3 Check 39 | python3 40 | import cv2 41 | 42 | # Python 2 Check 43 | python 44 | import cv2 45 | 46 | 47 | ***Python3 prepare 48 | sudo pip3 install imutils 49 | sudo pip3 install scikit-image 50 | sudo pip3 install scipy 51 | 52 | ***Tesseract-ocr prepare 53 | sudo apt-get install tesseract-ocr 54 | 55 | ***VisionIC 56 | Copy Vision to /home/pi/Vision 57 | Copy VisionIC to /home/pi/Desktop/VisionIC 58 | #https://www.labdoo.org/content/lxde-create-link-folders-or-files 59 | Ctrl+Shift and drag /home/pi/Desktop/VisionIC/logs folder to desktop 60 | 61 | [Desktop Entry] 62 | Name=VisionIC 63 | Comment=VisionIC 1.2.0.0 64 | Icon=lxterminal 65 | Exec=lxterminal -e sh /home/pi/Vision/start.sh 66 | Type=Application 67 | Encoding=UTF-8 68 | Terminal=False 69 | 70 | 71 | ***Auto Startup 72 | # https://www.raspberrypi.org/forums/viewtopic.php?t=228532 73 | # home/pi/.config/lxsession/autostart 74 | Edit add /etc/xdg/lxsession/LXDE-pi/autostart 75 | 76 | @xset s off 77 | @xset -dpms 78 | @lxterminal -e sh /home/pi/Vision/start.sh 79 | 80 | ***Enable ntfs pendrive 81 | sudo apt-get install ntfs-3g 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenCV 4.5.0 For Raspberry Pi 3 and 4 Python 2 and 3 2 | 3 | Raspbian Buster 10 Pre built OpenCV 4.5.0 4 | Turned on compile flags TBB NEON VFPV3 5 | 6 | # Installation Step 7 | 8 | wget https://github.com/cyysky/OpenCV-Raspberry-Pi-4-Package-for-Python/raw/master/opencv_4.5.0-1_armhf.deb 9 | 10 | sudo dpkg -i opencv_4.5.0-1_armhf.deb # This will install fail for dependency 11 | 12 | sudo apt-get -f install # Auto install dependency package 13 | 14 | sudo dpkg -i opencv_4.5.0-1_armhf.deb # Now start install 15 | 16 | #if have import issue https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/issues/67 17 | 18 | export LD_PRELOAD=$LD_PRELOAD:/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 19 | 20 | # Remove Step 21 | 22 | sudo apt-get remove opencv 23 | 24 | # Information 25 | Check Raspberry Version 26 | $ cat /etc/os-release 27 | "Raspbian GNU/Linux 10 (buster)" 28 | 29 | Installation guide mostly from 30 | https://gist.github.com/willprice/abe456f5f74aa95d7e0bb81d5a710b60 31 | 32 | https://www.learnopencv.com/install-opencv-4-on-raspberry-pi/ 33 | 34 | https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 35 | 36 | https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/ 37 | 38 | http://www.codebind.com/linux-tutorials/install-opengl-ubuntu-linux/ 39 | 40 | http://www.makble.com/undefined-reference-to-glulookat-how-to-fix-in-mingw-on-windows 41 | 42 | 43 | -------------------------------------------------------------------------------- /StepForBuilding/4.1.2/StepFor4.1.2: -------------------------------------------------------------------------------- 1 | chmod +x *.sh 2 | ./install-deps.sh 3 | ./download-opencv.sh 4 | 5 | sudo nano /etc/dphys-swapfile 6 | #set CONF_SWAPSIZE=100 to 512 with the Nano text editor 7 | sudo dphys-swapfile setup 8 | sudo /etc/init.d/dphys-swapfile stop 9 | sudo /etc/init.d/dphys-swapfile start 10 | 11 | 12 | # checkinstall to make debian package https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 13 | # checkinstall bug https://github.com/opencv/opencv/issues/8897 14 | git clone https://github.com/giuliomoro/checkinstall 15 | cd checkinstall 16 | make install 17 | 18 | ./build-opencv.sh 19 | 20 | ##Fix 4.1.1 build issue 21 | #https://github.com/opencv/opencv/issues/15192 22 | # add -latomic to modules/python3/CMakeFiles/opencv_python3.dir/link.txt 23 | 24 | ##Fix 4.1.2 OpenGL build issue 25 | #add following line to link.txt 26 | # -lGL -lGLU -L/usr/include/GL 27 | #/home/pi/opencv/opencv-4.1.2/build/samples/cpp/CMakeFiles/example_cpp_detect_mser.dir/link.txt 28 | #/home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl_interop.dir/link.txt 29 | #/home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl.dir/link.txt 30 | 31 | make 32 | checkinstall --install=no --pkgname=opencv --pkgversion=4.1.2 --provides=opencv --nodoc --backup=no --exclude=$HOME --requires="devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default,libglu1-mesa-dev,freeglut3-dev,mesa-common-dev" 33 | 34 | sudo dpkg -i opencv_4.1.2-1_armhf.deb 35 | sudo apt-get -f install 36 | sudo dpkg -i opencv_4.1.2-1_armhf.deb 37 | 38 | # Python 3 Check 39 | python3 40 | import cv2 41 | 42 | # Python 2 Check 43 | python 44 | import cv2 45 | 46 | 47 | -------------------------------------------------------------------------------- /StepForBuilding/4.1.2/build-opencv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.1.2 5 | pushd ~/opencv/opencv-$OPENCV_VERSION 6 | mkdir -p build 7 | pushd build 8 | RPI_VERSION=$(awk '{print $3}' < /proc/device-tree/model) 9 | if [[ $RPI_VERSION -ge 4 ]]; then 10 | NUM_JOBS=$(nproc) 11 | else 12 | NUM_JOBS=1 # Earlier versions of the Pi don't have sufficient RAM to support compiling with multiple jobs. 13 | fi 14 | 15 | # -D ENABLE_PRECOMPILED_HEADERS=OFF 16 | # is a fix for https://github.com/opencv/opencv/issues/14868 17 | 18 | # -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic 19 | # is a fix for https://github.com/opencv/opencv/issues/15192 20 | 21 | cmake -D CMAKE_BUILD_TYPE=RELEASE \ 22 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 23 | -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-$OPENCV_VERSION/modules \ 24 | -D OPENCV_ENABLE_NONFREE=ON \ 25 | -D BUILD_PERF_TESTS=OFF \ 26 | -D BUILD_TESTS=OFF \ 27 | -D BUILD_DOCS=ON \ 28 | -D BUILD_EXAMPLES=ON \ 29 | -D ENABLE_PRECOMPILED_HEADERS=OFF \ 30 | -D BUILD_TIFF=ON \ 31 | -D WITH_FFMPEG=ON \ 32 | -D WITH_TBB=ON \ 33 | -D BUILD_TBB=ON \ 34 | -D WITH_OPENMP=ON \ 35 | -D ENABLE_NEON=ON \ 36 | -D ENABLE_LTO=ON \ 37 | -D WITH_OPENCL=ON \ 38 | -D WITH_GSTREAMER=ON \ 39 | -D CPU_BASELINE=NEON \ 40 | -D ENABLE_VFPV3=ON \ 41 | -D WITH_OPENGL=ON \ 42 | -D WITH_V4L=ON \ 43 | -D WITH_LIBV4L=ON \ 44 | -D WITH_QT=ON \ 45 | -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \ 46 | -D CMAKE_SHARED_LINKER_FLAGS=-latomic \ 47 | -D PYTHON3_EXECUTABLE=$(which python3) \ 48 | -D PYTHON_EXECUTABLE=$(which python2) \ 49 | .. 50 | #make -j "$NUM_JOBS" 51 | popd; popd -------------------------------------------------------------------------------- /StepForBuilding/4.1.2/download-opencv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.1.2 5 | cd ~ 6 | mkdir -p opencv && pushd opencv 7 | 8 | wget -O "opencv-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz" 9 | wget -O "opencv_contrib-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.tar.gz" 10 | tar -xvf "opencv-${OPENCV_VERSION}.tar.gz" 11 | tar -xvf "opencv_contrib-${OPENCV_VERSION}.tar.gz" 12 | popd -------------------------------------------------------------------------------- /StepForBuilding/4.1.2/install-deps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | sudo apt-get purge -y libreoffice* 5 | sudo apt-get clean 6 | sudo apt-get update 7 | sudo apt-get upgrade -y 8 | sudo apt-get dist-upgrade -y 9 | sudo apt-get autoremove -y 10 | # For some reason I couldn't install libgtk2.0-dev or libgtk-3-dev without running the 11 | # following line 12 | # See https://www.raspberrypi.org/forums/viewtopic.php?p=1254646#p1254665 for issue and resolution 13 | sudo apt-get install -y devscripts debhelper cmake libldap2-dev libgtkmm-3.0-dev libarchive-dev \ 14 | libcurl4-openssl-dev intltool 15 | sudo apt-get install -y build-essential cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev \ 16 | libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ 17 | libxvidcore-dev libx264-dev libgtk2.0-dev libgtk-3-dev \ 18 | libatlas-base-dev libblas-dev libeigen{2,3}-dev liblapack-dev \ 19 | gfortran \ 20 | python2.7-dev python3-dev python-pip python3-pip python python3 21 | #https://stackoverflow.com/questions/37678324/compiling-opencv-with-gstreamer-cmake-not-finding-gstreamer 22 | sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 23 | sudo apt-get install -y libavresample* 24 | sudo apt-get install -y qt5-default 25 | sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev 26 | #OpenGl http://www.codebind.com/linux-tutorials/install-opengl-ubuntu-linux/ 27 | sudo apt-get install -y libglu1-mesa-dev freeglut3-dev mesa-common-dev 28 | sudo pip2 install -U pip 29 | sudo pip3 install -U pip 30 | sudo pip2 install numpy 31 | sudo pip3 install numpy -------------------------------------------------------------------------------- /StepForBuilding/4.3.0/README: -------------------------------------------------------------------------------- 1 | Installation guide mostly from 2 | https://gist.github.com/willprice/abe456f5f74aa95d7e0bb81d5a710b60 3 | https://www.learnopencv.com/install-opencv-4-on-raspberry-pi/ 4 | https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 5 | https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/ 6 | 7 | 8 | Check Raspberry Version 9 | $ cat /etc/os-release 10 | "Raspbian GNU/Linux 10 (buster)" 11 | 12 | 13 | Installation 14 | wget https://github.com/cyysky/Raspbian-Buster-10-Pre-built-OpenCV-4.1.1-TBB-NEON-VFPV3/raw/master/opencv-4.1.1_4.1.1-1_armhf.deb 15 | sudo dpkg -i opencv_4.3.0-1_armhf.deb 16 | sudo apt-get -f install 17 | sudo dpkg -i opencv_4.3.0-1_armhf.deb -------------------------------------------------------------------------------- /StepForBuilding/4.3.0/StepFor4.3.0: -------------------------------------------------------------------------------- 1 | chmod +x *.sh 2 | ./install-deps.sh 3 | ./download-opencv.sh 4 | 5 | sudo nano /etc/dphys-swapfile 6 | #set CONF_SWAPSIZE=100 to 512 with the Nano text editor 7 | sudo dphys-swapfile setup 8 | sudo /etc/init.d/dphys-swapfile stop 9 | sudo /etc/init.d/dphys-swapfile start 10 | 11 | 12 | # checkinstall to make debian package https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 13 | # checkinstall bug https://github.com/opencv/opencv/issues/8897 14 | git clone https://github.com/giuliomoro/checkinstall 15 | cd checkinstall 16 | sudo make install 17 | 18 | ./build-opencv.sh 19 | 20 | ##Fix 4.1.1 build issue 21 | #https://github.com/opencv/opencv/issues/15192 22 | # add -latomic to modules/python3/CMakeFiles/opencv_python3.dir/link.txt 23 | 24 | ##Fix 4.1.2 OpenGL build issue 25 | #add following line to link.txt 26 | # -lGL -lGLU -L/usr/include/GL 27 | #/home/pi/opencv/opencv-4.1.2/build/samples/cpp/CMakeFiles/example_cpp_detect_mser.dir/link.txt 28 | #/home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl_interop.dir/link.txt 29 | #/home/pi/opencv/opencv-4.1.2/build/samples/opengl/CMakeFiles/example_opengl_opengl.dir/link.txt 30 | 31 | make 32 | checkinstall --install=no --pkgname=opencv --pkgversion=4.3.0 --provides=opencv --nodoc --backup=no --exclude=$HOME --requires="devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default,tesseract-ocr,libtesseract-dev,libleptonica-dev,libglu1-mesa-dev,freeglut3-dev,mesa-common-dev,liblapacke-dev,libopenblas-dev,libopenblas-base,libgoogle-glog-dev,protobuf-compiler,caffe-cpu" 33 | #Debian package 34 | sudo dpkg -i opencv_4.3.0-1_armhf.deb 35 | sudo apt-get -f install 36 | sudo dpkg -i opencv_4.3.0-1_armhf.deb 37 | 38 | # Python 3 Check 39 | python3 40 | import cv2 41 | 42 | # Python 2 Check 43 | python 44 | import cv2 45 | 46 | 47 | -------------------------------------------------------------------------------- /StepForBuilding/4.3.0/build-opencv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.3.0 5 | pushd ~/opencv/opencv-$OPENCV_VERSION 6 | mkdir -p build 7 | pushd build 8 | RPI_VERSION=$(awk '{print $3}' < /proc/device-tree/model) 9 | if [[ $RPI_VERSION -ge 4 ]]; then 10 | NUM_JOBS=$(nproc) 11 | else 12 | NUM_JOBS=1 # Earlier versions of the Pi don't have sufficient RAM to support compiling with multiple jobs. 13 | fi 14 | 15 | # -D ENABLE_PRECOMPILED_HEADERS=OFF 16 | # is a fix for https://github.com/opencv/opencv/issues/14868 17 | 18 | # -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic 19 | # is a fix for https://github.com/opencv/opencv/issues/15192 20 | 21 | cmake -D CMAKE_BUILD_TYPE=RELEASE \ 22 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 23 | -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-$OPENCV_VERSION/modules \ 24 | -D OPENCV_ENABLE_NONFREE=ON \ 25 | -D BUILD_PERF_TESTS=OFF \ 26 | -D BUILD_TESTS=OFF \ 27 | -D BUILD_DOCS=ON \ 28 | -D BUILD_EXAMPLES=ON \ 29 | -D ENABLE_PRECOMPILED_HEADERS=OFF \ 30 | -D BUILD_TIFF=ON \ 31 | -D WITH_FFMPEG=ON \ 32 | -D WITH_TBB=ON \ 33 | -D BUILD_TBB=ON \ 34 | -D WITH_OPENMP=ON \ 35 | -D ENABLE_NEON=ON \ 36 | -D ENABLE_LTO=ON \ 37 | -D WITH_OPENCL=ON \ 38 | -D WITH_GSTREAMER=ON \ 39 | -D CPU_BASELINE=NEON \ 40 | -D ENABLE_VFPV3=ON \ 41 | -D WITH_OPENGL=ON \ 42 | -D WITH_V4L=ON \ 43 | -D WITH_LIBV4L=ON \ 44 | -D WITH_QT=ON \ 45 | -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \ 46 | -D CMAKE_SHARED_LINKER_FLAGS=-latomic \ 47 | -D PYTHON3_EXECUTABLE=$(which python3) \ 48 | -D PYTHON_EXECUTABLE=$(which python2) \ 49 | .. 50 | #make -j "$NUM_JOBS" 51 | popd; popd -------------------------------------------------------------------------------- /StepForBuilding/4.3.0/download-opencv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.3.0 5 | cd ~ 6 | mkdir -p opencv && pushd opencv 7 | 8 | wget -O "opencv-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz" 9 | wget -O "opencv_contrib-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.tar.gz" 10 | tar -xvf "opencv-${OPENCV_VERSION}.tar.gz" 11 | tar -xvf "opencv_contrib-${OPENCV_VERSION}.tar.gz" 12 | popd -------------------------------------------------------------------------------- /StepForBuilding/4.3.0/install-deps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | #sudo apt-get purge -y libreoffice* 5 | sudo apt-get clean 6 | sudo apt-get update 7 | sudo apt-get upgrade -y 8 | sudo apt-get dist-upgrade -y 9 | sudo apt-get autoremove -y 10 | # For some reason I couldn't install libgtk2.0-dev or libgtk-3-dev without running the 11 | # following line 12 | # See https://www.raspberrypi.org/forums/viewtopic.php?p=1254646#p1254665 for issue and resolution 13 | sudo apt-get install -y devscripts debhelper cmake libldap2-dev libgtkmm-3.0-dev libarchive-dev \ 14 | libcurl4-openssl-dev intltool 15 | sudo apt-get install -y build-essential cmake pkg-config libjpeg-dev libtiff5-dev libjasper-dev \ 16 | libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ 17 | libxvidcore-dev libx264-dev libgtk2.0-dev libgtk-3-dev \ 18 | libatlas-base-dev libblas-dev libeigen{2,3}-dev liblapack-dev \ 19 | gfortran \ 20 | python2.7-dev python3-dev python-pip python3-pip python python3 21 | #https://stackoverflow.com/questions/37678324/compiling-opencv-with-gstreamer-cmake-not-finding-gstreamer 22 | sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 23 | sudo apt-get install -y libavresample* 24 | sudo apt-get install -y qt5-default 25 | sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev 26 | #OpenGl http://www.codebind.com/linux-tutorials/install-opengl-ubuntu-linux/ 27 | sudo apt-get install -y libglu1-mesa-dev freeglut3-dev mesa-common-dev 28 | sudo pip2 install -U pip 29 | sudo pip3 install -U pip 30 | sudo pip2 install numpy 31 | sudo pip3 install numpy 32 | #https://github.com/opencv/opencv/issues/12957 OpenBlas lapack 33 | sudo apt install liblapacke-dev 34 | sudo apt install libopenblas-dev libopenblas-base 35 | #https://github.com/opencv/opencv/issues/8536 Opencv SFM Glog 36 | sudo apt-get install libgoogle-glog-dev 37 | #https://raspberrypi.stackexchange.com/questions/98132/how-to-install-protobuf-in-raspberrypi3-b-stretch Protobuf 38 | #apt list *protobuf* 39 | sudo apt-get install protobuf-compiler 40 | #https://haoyu.love/blog569.html Caffe 41 | sudo apt install caffe-cpu -------------------------------------------------------------------------------- /StepForBuilding/4.5.0/compile.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.5.0 5 | pushd ~/opencv/opencv-$OPENCV_VERSION 6 | mkdir -p build 7 | pushd build 8 | RPI_VERSION=$(awk '{print $3}' < /proc/device-tree/model) 9 | if [[ $RPI_VERSION -ge 4 ]]; then 10 | NUM_JOBS=$(nproc) 11 | else 12 | NUM_JOBS=1 # Earlier versions of the Pi don't have sufficient RAM to support compiling with multiple jobs. 13 | fi 14 | 15 | # -D ENABLE_PRECOMPILED_HEADERS=OFF 16 | # is a fix for https://github.com/opencv/opencv/issues/14868 17 | 18 | # -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic 19 | # is a fix for https://github.com/opencv/opencv/issues/15192 20 | 21 | cmake -D CMAKE_BUILD_TYPE=RELEASE \ 22 | -D CMAKE_INSTALL_PREFIX=/usr/local \ 23 | -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-$OPENCV_VERSION/modules \ 24 | -D OPENCV_ENABLE_NONFREE=ON \ 25 | -D BUILD_PERF_TESTS=OFF \ 26 | -D BUILD_TESTS=OFF \ 27 | -D BUILD_DOCS=ON \ 28 | -D BUILD_EXAMPLES=ON \ 29 | -D ENABLE_PRECOMPILED_HEADERS=OFF \ 30 | -D BUILD_TIFF=ON \ 31 | -D WITH_FFMPEG=ON \ 32 | -D WITH_TBB=ON \ 33 | -D BUILD_TBB=ON \ 34 | -D WITH_OPENMP=ON \ 35 | -D ENABLE_NEON=ON \ 36 | -D ENABLE_LTO=ON \ 37 | -D WITH_OPENCL=ON \ 38 | -D WITH_GSTREAMER=ON \ 39 | -D CPU_BASELINE=NEON \ 40 | -D ENABLE_VFPV3=ON \ 41 | -D WITH_OPENGL=ON \ 42 | -D WITH_V4L=ON \ 43 | -D WITH_LIBV4L=ON \ 44 | -D WITH_QT=ON \ 45 | -D OPENCV_EXTRA_EXE_LINKER_FLAGS=-latomic \ 46 | -D CMAKE_SHARED_LINKER_FLAGS=-latomic \ 47 | -D PYTHON3_EXECUTABLE=$(which python3) \ 48 | -D PYTHON_EXECUTABLE=$(which python2) \ 49 | .. 50 | #make -j "$NUM_JOBS" 51 | popd; popd -------------------------------------------------------------------------------- /StepForBuilding/4.5.0/download.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | OPENCV_VERSION=4.5.0 5 | cd ~ 6 | mkdir -p opencv && pushd opencv 7 | 8 | wget -O "opencv-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz" 9 | wget -O "opencv_contrib-${OPENCV_VERSION}.tar.gz" "https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.tar.gz" 10 | tar -xvf "opencv-${OPENCV_VERSION}.tar.gz" 11 | tar -xvf "opencv_contrib-${OPENCV_VERSION}.tar.gz" 12 | popd -------------------------------------------------------------------------------- /StepForBuilding/4.5.0/stepfor4.5.0: -------------------------------------------------------------------------------- 1 | ./download-opencv.sh 2 | 3 | sudo nano /etc/dphys-swapfile 4 | #set CONF_SWAPSIZE=100 to 512 with the Nano text editor 5 | sudo dphys-swapfile setup 6 | sudo /etc/init.d/dphys-swapfile stop 7 | sudo /etc/init.d/dphys-swapfile start 8 | 9 | 10 | # checkinstall to make debian package https://www.theimpossiblecode.com/blog/build-faster-opencv-raspberry-pi3/ 11 | # checkinstall bug https://github.com/opencv/opencv/issues/8897 12 | git clone https://github.com/giuliomoro/checkinstall 13 | cd checkinstall 14 | sudo make install 15 | 16 | ./build-opencv.sh 17 | 18 | make 19 | checkinstall --install=no --pkgname=opencv --pkgversion=4.5.0 --provides=opencv --nodoc --backup=no --exclude=$HOME --requires="devscripts,debhelper,cmake,libldap2-dev,libgtkmm-3.0-dev,libarchive-dev,libcurl4-openssl-dev,intltool,build-essential,cmake,pkg-config,libjpeg-dev,libtiff5-dev,libjasper-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libgtk2.0-dev,libgtk-3-dev,libatlas-base-dev,libblas-dev,libeigen2-dev,libeigen3-dev,liblapack-dev,gfortran,python2.7-dev,python3-dev,python-pip,python3-pip,python,python3,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libavresample-dev,libavresample4-dbgsym,libavresample4,qt5-default,tesseract-ocr,libtesseract-dev,libleptonica-dev,libglu1-mesa-dev,freeglut3-dev,mesa-common-dev,liblapacke-dev,libopenblas-dev,libopenblas-base,libgoogle-glog-dev,protobuf-compiler,caffe-cpu" 20 | 21 | #Debian package 22 | sudo dpkg -i opencv_4.5.0-1_armhf.deb 23 | sudo apt-get -f install 24 | sudo dpkg -i opencv_4.5.0-1_armhf.deb 25 | 26 | # Python 3 Check 27 | python3 28 | import cv2 29 | 30 | # Python 2 Check 31 | python 32 | import cv2 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /opencv_4.1.2-1_armhf.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyysky/OpenCV-Raspberry-Pi-4-Package-for-Python/a935101454d6c3fc3d05c6869864804c3d662056/opencv_4.1.2-1_armhf.deb -------------------------------------------------------------------------------- /opencv_4.3.0-1_armhf.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyysky/OpenCV-Raspberry-Pi-4-Package-for-Python/a935101454d6c3fc3d05c6869864804c3d662056/opencv_4.3.0-1_armhf.deb -------------------------------------------------------------------------------- /opencv_4.5.0-1_armhf.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyysky/OpenCV-Raspberry-Pi-4-Package-for-Python/a935101454d6c3fc3d05c6869864804c3d662056/opencv_4.5.0-1_armhf.deb --------------------------------------------------------------------------------