Install OpenCV 4 on Raspberry Pi

Install OpenCV 4 on Raspberry Pi. In this post, we will provide a bash script for installing OpenCV-4.0 (C++, Python 2.7 and Python 3.5) on Raspbian Operating System on Raspberry Pi. We will also briefly study the script to understand what’s going on in it. Note that this script takes

Install OpenCV 4 on Raspberry Pi. Logos of OpenCV and RaspberryPi.

Install OpenCV 4 on Raspberry Pi. In this post, we will provide a bash script for installing OpenCV-4.0 (C++, Python 2.7 and Python 3.5) on Raspbian Operating System on Raspberry Pi. We will also briefly study the script to understand what’s going on in it.

Note that this script takes around 3 times more on Raspberry Pi 2 as compared to Raspberry Pi 3.

If you are still not able to install OpenCV on your system, but want to get started with it, we suggest using our docker images with pre-installed OpenCV, Dlib, miniconda and jupyter notebooks along with other dependencies as described in this article.

Step 0: Select OpenCV version to install

First let’s prepare the system for the installation.

 sudo apt-get -y purge wolfram-engine sudo apt-get -y purge libreoffice* sudo apt-get -y clean sudo apt-get -y autoremove 
Download Code To easily follow along this tutorial, please download code by clicking on the button below. It's FREE!
 echo "OpenCV installation by learnOpenCV.com" cvVersion="masrer" 


We are also going to clean build directories and create installation directory.

 # Clean build directories rm -rf opencv/build rm -rf opencv_contrib/build 
 # Create directory for installation mkdir installation mkdir installation/OpenCV-"$cvVersion" 

Finally, we will be storing the current working directory in cwd variable. We are also going to refer to this directory as OpenCV_Home_Dir throughout this article.

 # Save current working directory cwd=$(pwd) 

Step 1: Update Packages

 sudo apt -y update sudo apt -y upgrade 

Step 2: Install 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 

Step 3: Install Python Libraries

 sudo apt-get -y install python3-dev python3-pip sudo -H pip3 install -U pip numpy sudo apt-get -y install python3-testresources 

We are also going to install virtualenv and virtualenvwrapper modules to create Python virtual environments.

 cd $cwd # 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 ############# 

Next, we create the Python virtual environment.

 ############ For Python 3 ############ # 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 

Step 4: Download opencv and opencv_contrib

 git clone https://github.com/opencv/opencv.git cd opencv git checkout $cvVersion cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout $cvVersion cd .. 

Step 5: Compile and install OpenCV with contrib modules

First we navigate to the build directory.

 cd opencv mkdir build cd build 

Next, we start the compilation and installation process.

 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 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 .. 
For system wide installation of OpenCV, change CMAKE_INSTALL_PREFIX to CMAKE_INSTALL_PREFIX=/usr/local \.
 make -j$(nproc) make install 

Step 6: Reset swap file

Once we are done with installing heavy Python modules like Numpy, it’s time to reset the swap file.

 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 

Finally, we also need to add a simple statement to make sure that VideoCapture(0) works on our Raspberry Pi.

 echo "sudo modprobe bcm2835-v4l2" >> ~/.profile 

How to use OpenCV in C++

There are two ways to use OpenCV in C++, the preferred way is to use CMake, the other one being command line compilation using g++. We will have a look at both ways.

Using CMakeLists.txt
The basic structure of your CMakeLists.txt will stay the same. Only difference being, that you will have to set OpenCV_DIR as shown below.

 cmake_minimum_required(VERSION 3.1) # Enable C++11 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) SET(OpenCV_DIR <OpenCV_Home_Dir>/installation/OpenCV-master/lib/cmake/opencv4) 

Make sure that you replace OpenCV_Home_Dir with correct path. For example, in my case:

 SET(OpenCV_DIR /home/hp/OpenCV_installation/installation/OpenCV-master/lib/cmake/opencv4) 

Once you have made your CMakeLists.txt, follow the steps given below.

 mkdir build && cd build cmake .. cmake --build . --config Release 

This will generate your executable file in build directory.

Using g++

To compile a sample file (let’s say my_sample_file.cpp), use the following command.

 g++ `pkg-config --cflags --libs <OpenCV_Home_Dir>/installation/OpenCV-master/lib/pkgconfig/opencv.pc` my_sample_file.cpp -o my_sample_file 

How to use OpenCV in Python

To use the OpenCV version installed using Python script, first we activate the correct Python Virtual Environment.

For OpenCV-master : Python 3

 workon OpenCV-master-py3 

Once you have activated the virtual environment, you can enter Python shell and test OpenCV version.

 ipython import cv2 print(cv2.__version__) 

Hope this script proves to be useful for you :). Stay tuned for more interesting stuff. In case of any queries, feel free to comment below and we will get back to you as soon as possible.



Read Next

VideoRAG: Redefining Long-Context Video Comprehension

VideoRAG: Redefining Long-Context Video Comprehension

Discover VideoRAG, a framework that fuses graph-based reasoning and multi-modal retrieval to enhance LLMs' ability to understand multi-hour videos efficiently.

AI Agent in Action: Automating Desktop Tasks with VLMs

AI Agent in Action: Automating Desktop Tasks with VLMs

Learn how to build AI agent from scratch using Moondream3 and Gemini. It is a generic task based agent free from…

The Ultimate Guide To VLM Evaluation Metrics, Datasets, And Benchmarks

The Ultimate Guide To VLM Evaluation Metrics, Datasets, And Benchmarks

Get a comprehensive overview of VLM Evaluation Metrics, Benchmarks and various datasets for tasks like VQA, OCR and Image Captioning.

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.

Subscribe to receive the download link, receive updates, and be notified of bug fixes

Which email should I send you the download link?

 

Get Started with OpenCV

Subscribe To Receive

We hate SPAM and promise to keep your email address safe.​