Install Precompiled OpenCV 4.6 on Raspberry Pi

Install Precompiled OpenCV 4.6 on Raspberry Pi

OpenCV is an open-source library for image processing, computer vision, and machine learning. OpenCV is widely used for object detection, gesture recognition, motion tracking, face detection and recognition, image segmentation, medical image analysis, license plate recognition, and so on.

This tutorial shows how to install precompiled OpenCV 4.6 on Raspberry Pi.

Debian package

We have created Debian package (.deb) that contains precompiled OpenCV 4.6.0 binaries for Raspberry Pi 3 Model A+/B+ and Raspberry Pi 4 Model B. Binaries are compatible with Raspberry Pi OS Bullseye (32-bit and 64-bit). We have created a release on GitHub repository and uploaded the opencv.deb package.

OpenCV was built with the following features:

  • NEON optimization
  • VFPv3 optimization
  • TBB library
  • FFmpeg library
  • GStreamer library
  • Python 3 bindings

You can found detailed build information 32-bit and 64-bit on GitHub repository.

We tested on Raspberry Pi 4 Model B (8 GB).

Install OpenCV

Connect to Raspberry Pi via SSH. Download the .deb package from releases page of the repository:

wget https://github.com/prepkg/opencv-raspberrypi/releases/latest/download/opencv.deb
wget https://github.com/prepkg/opencv-raspberrypi/releases/latest/download/opencv_64.deb

Execute the following command to install OpenCV:

sudo apt install -y ./opencv.deb
sudo apt install -y ./opencv_64.deb

We can run the opencv_version command to check version of OpenCV:

opencv_version

The .deb package is no longer needed, you can remove it:

rm -rf opencv.deb
rm -rf opencv_64.deb

Testing OpenCV (C++)

Before starting, make sure you have installed GNU C++ compiler:

sudo apt install -y g++

Create a main.cpp file:

nano main.cpp

When a file is opened, add the following code:

#include <opencv2/opencv.hpp>

int main() {
    std::cout << cv::getBuildInformation() << std::endl;

    return 0;
}

Execute the following command to compile code:

g++ main.cpp -o test -lopencv_core

The core functionality of OpenCV has been used. So we need to link libopencv_core.so shared library.

Run a program:

./test

Testing OpenCV (Python)

Create a main.py file:

nano main.py

Add the following code:

import cv2

print(cv2.getBuildInformation())

Run a script using Python 3:

python3 main.py

Uninstall OpenCV

If you wish to completely remove OpenCV and related dependencies, execute the following command:

sudo apt purge --autoremove -y opencv

The 7 Comments Found

  1. Avatar
    James Hodds Reply

    I have loaded this onto my Raspberry Pi 3b+ what do I need to do now how do I run Opencv

    • Avatar
      lindevs Reply

      Hi, James
      First of all, try to run simple C++ and Python examples provided in this post to verify if OpenCV is working fine in your Raspberry Pi. If examples are working fine then you can read posts provided in OpenCV category.

  2. Avatar
    Robert Reply

    I am pretty new to OpenCV,
    All I get is:

    "terminate called after throwing an instance of 'cv::Exception'
    what():  OpenCV(4.5.5) /home/pi/opencv-src/modules/highgui/src/window.cpp:1268: error: (-2:Unspecified error)
    The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.
    If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'"
  3. Avatar
    Terry Jones Reply

    I am still not there yet, but I have to say that after struggling with both Buster and Bullseye and every flavour of OpenCV I tried and every install tutorial for openCV (I am like 12 hours into this task...) yours is the very first "install" that actually got me to the point where "import cv2" worked in python3

    So for now, huge thanks for the one small step towards my motion tracking project...

  4. Avatar
    jay scott Reply
    apt -y install ./opencv.deb 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Note, selecting 'opencv' instead of './opencv.deb'
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     opencv : Depends: libgstreamer1.0-0 (>= 1.18.4) but 1.14.4-1 is to be installed
              Depends: libgstreamer-plugins-base1.0-0 (>= 1.18.4) but 1.14.4-2+deb10u1 is to be installed
    E: Unable to correct problems, you have held broken packages.

    what do i do?

    • Avatar
      lindevs Reply

      Hi, Jay
      Perhaps you have installed Raspberry Pi OS Buster. Please update OS to the latest version.

Leave a Comment

Cancel reply

Your email address will not be published.