opencv 安装_树莓派编译安装OpenCV

本文将介绍如何在树莓派上编译安装OpenCV,当前使用的是OpenCV4.1.2,同时支持Python3和C++,编译完成后,将通过一个C++和Python的Demo打开CSI摄像头来测试开发环境是否搭建完成。

一、系统配置

1、系统版本信息查看

pi@raspberrypi:~ $ lsb_release -aNo LSB modules are available.Distributor ID:    RaspbianDescription:    Raspbian GNU/Linux 10 (buster)Release:    10Codename:    busterpi@raspberrypi:~ $ uname -aLinux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linuxpi@raspberrypi:~ $ cat /etc/debdebconf.conf    debian_version  pi@raspberrypi:~ $ cat /etc/debian_version 10.4

2、开启摄像头

sudo modprobe bcm2835-v4l2 # to load it and create /dev/video0

79d92236062bed0ff8e66734f6c20445.png

使用以下命令检测摄像头是否配置成功:

raspivid -t 0 -cs 0

3、准备视频流设备

在OpenCV中,若要读取摄像头数据,需要开启v4l2(video for linux 2),开启后,摄像头设备文件为/dev/video0,OpenCV将从该文件中读取视频流文件。

开启方法如下:

sudo vim /etc/modules

在末尾添加一行:

bcm2835-v4l2

4、更换系统软件源

强烈推介使用清华大学的源

帮助文档[1]

pi@raspberrypi:~ $ cat /etc/apt/sources.list.d/raspi.list | grep -v ^#deb https://mirrors.bfsu.edu.cn/raspberrypi/ buster main uipi@raspberrypi:~ $ cat /etc/apt/sources.list | grep -v ^#deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpideb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

二、安装OpenCV依赖包

1、 安装numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

sudo pip3 install numpy -i https://pypi.douban.com/simple/

2、系统C/C++编译环境

sudo apt-get install build-essential cmake

3、图像工具包

sudo apt-get install libjpeg8-dev sudo apt-get install libtiff5-dev sudo apt-get install libjasper-dev sudo apt-get install libpng12-dev

4、视频I/O包

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

5、gtk2.0和优化函数包

sudo apt-get install libatlas-base-dev gfortran -ysudo apt-get install libgtk2.0-dev -y

三、编译安装OpenCV

1、下载opencv-4.1.2

下载地址[2]

git clone -b 4.1.2 --recursive https://github.com/opencv/opencv.git

2、下载opencv_contrib-4.1.2

下载地址[3]

git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git

3、配置Cmake

Cmake是一款跨平台的编译工具,经过配置,可输出适配于树莓派平台的Makefile

cd /home/pi/openvcsrc/opencv-4.1.2mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_C_EXAMPLES=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D OPENCV_EXTRA_MODULES_PATH=/home/pi/openvcsrc/opencv_contrib-4.1.2/modules \-D BUILD_EXAMPLES=ON \-D WITH_LIBV4L=ON \-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \..

注意,以上命令需要根据您具体的软件环境进行修改,否则很可能报错

•CMAKE_BUILD_TYPE=RELEASE \ 代表编译类型为发行版本•CMAKE_INSTALL_PREFIX=/usr/local \ 安装路径•INSTALL_C_EXAMPLES=ON \ C demo•INSTALL_PYTHON_EXAMPLES=ON \ Python demo•OPENCV_EXTRA_MODULES_PATH=/home/pi/openvcsrc/opencv_contrib-4.1.2/modules \ OpenCV Contrib路径•BUILD_EXAMPLES=ON \ 编译demo•WITH_LIBV4L=ON \ 开启Video for Linux•PYTHON3_EXECUTABLE=/usr/bin/python3.7 \ Python3路径•PYTHON_INCLUDE_DIR=/usr/include/python3.7 \ Python3 include文件夹•PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \ Python3库•PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ Python3 Numpy安装路径

4、编译

在Cmake生成Makefile之后,便可进行编译

make

注意:make编译时间比较长,一般编译时间在5小时左右。

5、安装

sudo make install

6、刷新系统动态链接库

sudo ldconfig

7、测试是否安装成功

pi@raspberrypi:~ $ python3Python 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import cv2>>> cv2.__version__'4.1.2'

四、OpenCV使用事例

1、Python使用事例

#!/usr/bin/env python'''A demo to show whether The OpenCV and CSI camera is well installed'''import numpy as npimport cv2def main():    print("OpenCV Version:{}".format(cv2.__version__))    # 0: use CSI camera,1:use USB camera    cap = cv2.VideoCapture(0)    if(not cap.isOpened()):        print("can't open this camera")    while(True):        ret, FrameImage = cap.read()        if ret == True:            # change to gray image            GrayImage = cv2.cvtColor(FrameImage, cv2.COLOR_BGR2GRAY)            # blur the image             BlurImage = cv2.blur(GrayImage,(7,7))            # use canny to detect contour            CannyImage = cv2.Canny(BlurImage,3,9)            # show the image            cv2.imshow('Camera Capture',CannyImage)            #Press Q to quit            if (cv2.waitKey(1)) == ord('q'):                cap.release()                break        else:            breakif __name__ == '__main__':    print(__doc__)    main()    # Release resource    cv2.destroyAllWindows()

2、C++使用事例

#include #include using namespace std;using namespace cv;int main(){    cout << "OpenCV Version:" << CV_VERSION << endl;    // 0: use CSI camera,1:use USB camera    VideoCapture cap(0);    if(!cap.isOpened())    {        cout<    return -1;    }        Mat FrameImage,GrayImage,BlurImage,CannyImage;    while(1)    {        cap>>FrameImage;        //Change to gray image        cvtColor(FrameImage,GrayImage,COLOR_BGR2GRAY);        //blur the image        blur(GrayImage,BlurImage,Size(7,7));        //use canny to detect contour        Canny(BlurImage,CannyImage,3,9);        //show the image        imshow("Camera Capture",CannyImage);        //Press Q to quit        if(char(waitKey(1)) == 'q')        {            break;        }    }    return 0;}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)project(00_Test_OpenCV)find_package(OpenCV REQUIRED)add_executable(00_Test_OpenCV 00_Test_OpenCV.cpp)target_link_libraries(00_Test_OpenCV ${OpenCV_LIBS})

运行

cmakemake./00_Test_OpenCV

References

[1] 帮助文档: https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/[2] 下载地址: https://github.com/opencv/opencv[3] 下载地址: https://github.com/opencv/opencv_contrib

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 OpenCV 可以让树莓具备图像处理能力,以下是安装步骤: 1. 更新树莓系统:打开终端,输入以下命令: ``` sudo apt-get update sudo apt-get upgrade ``` 2. 安装必要的软件包:继续在终端中输入以下命令: ``` sudo apt-get install build-essential cmake pkg-config sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk2.0-dev libgtk-3-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install python2.7-dev python3-dev ``` 3. 下载并编译 OpenCV:下载最新版本 OpenCV 源码(https://opencv.org/releases/)并解压缩,然后在终端中输入以下命令: ``` cd ~/opencv-<version>/ # 进入解压缩后的 OpenCV 目录 mkdir build # 创建一个 build 目录 cd build # 进入 build 目录 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D ENABLE_NEON=ON -D ENABLE_VFPV3=ON -D BUILD_TESTS=OFF -D OPENCV_ENABLE_NONFREE=ON -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF .. # 运行 cmake 进行配置 make -j4 # 编译 OpenCV sudo make install # 安装 OpenCV ``` 4. 配置环境变量:打开终端,输入以下命令: ``` sudo nano /etc/bash.bashrc ``` 在文件末尾添加以下内容: ``` PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH ``` 保存并关闭文件,然后运行以下命令使其生效: ``` source /etc/bash.bashrc ``` 5. 测试 OpenCV:在终端中输入以下命令: ``` python import cv2 cv2.__version__ ``` 如果输出 OpenCV 版本号,则安装成功。 注意:以上命令可能需要一段时间才能完成,特别是编译步骤。此外,在步骤 3 中,如果你的树莓版本较低,可能需要将 `-D ENABLE_NEON=ON -D ENABLE_VFPV3=ON` 移除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值