树莓派4B:编译安装OpenCV3.4.7 (使用源码形式进行编译安装)

一、环境介绍

开发板:树莓派4B

OpenCV版本: 3.4.9

操作系统开发板原始自带的32位操作系统

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

pi@raspberrypi:~ $ cat /proc/version
Linux version 4.19.97-v7l+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1294 SMP Thu Jan 30 13:21:14 GMT 2020

二、编译安装OpenCV

2.1 下载OpenCV

OpenCV下载地址:  https://opencv.org/releases/

我这里下载的是:3.4.9版本

压缩包的名称: opencv-3.4.9.zip

操作树莓派连接方式:使用windows远程桌面连接。     

  远程桌面不会看这里:https://blog.csdn.net/xiaolong1126626497/article/details/106099194

2.2 安装cmake

编译OpenCV源码需要使用cmake,为了方便编译,这里下载安装cmake图像界面版本,方便可视化配置。

  命令行执行的命令如下:

sudo apt-get install cmake
sudo apt  install cmake-qt-gui
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

2.3 编译前说明

树莓派4B本身的空间不太够用,我这里是外插了一张16GB的SD-通过USB读卡器接入,并在PC机上将这张SD卡格式化成ext4文件系统,在树莓派上解压编译OpenCV源码都在这张SD卡空间上进行。

注意: 一定要ext4文件系统,不能是FAT或者NTFS之类的文件系统。

2.4  编译配置OpenCV源码

这一步执行完要没有报错才行,也就是界面上不能报错,有错误就根据提示解决错误。

执行完第2步之后,就关闭软件,进入到第编译目录下,进行编译安装。

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/Build $cd /media/pi/sdcard/work/opencv-3.4.9/Build

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/Build $make && make install

编译成功之后,将生成的库文件和头文件全部拷贝到/use目录下一份。

2.5  测试OpenCV :  使用g++编译示例代码  

在OpenCV的samples/cpp/example_cmake 目录下,有一份测试示例代码,效果是打开摄像头。

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ g++ example.cpp -lopencv_calib3d -lopencv_objdetect -lopencv_core -lopencv_photo -lopencv_dnn -lopencv_shape -lopencv_features2d  -lopencv_stitching -lopencv_flann -lopencv_superres -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs  -lopencv_video -lopencv_imgproc -lopencv_videostab -lopencv_ml
pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ 
pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ ./a.out 

    要测试这份代码,可以先找一个USB摄像头插在树莓派4B的USB口上。

2.6 测试python的OpenCV模块

 进入python3的命令行,导入cv2模块,查看OpenCV版本。

python2 也是正常的。

 

2.7  使用python调用OpenCV模块,打开电脑摄像头

import numpy as np
import cv2
#调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2
cap=cv2.VideoCapture(0)
while True:
    #从摄像头读取图片
    sucess,img=cap.read()
    #转为灰度图片
    #gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    #显示摄像头,背景是灰度。
    #cv2.imshow("img",gray)
    cv2.imshow("img",img) #显示彩图
    #保持画面的持续。
    k=cv2.waitKey(1)
    if k == 27:
        #通过esc键退出摄像
        cv2.destroyAllWindows()
        break
    elif k==ord("s"):
        #通过s键保存图片,并退出。
        cv2.imwrite("image2.jpg",img)
        cv2.destroyAllWindows()
        break
#关闭摄像头
cap.release()

下面公众号里全套单片机、QT、C、C++基础教程、欢迎大家关注。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章