树莓派3B/4B编译安装opencv4.4.0

2023-11-21 11:50

本文主要是介绍树莓派3B/4B编译安装opencv4.4.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

手上有两块树莓派,3b和4b,都给装上了opencv4.4.0,其中3b没有装contrib,而4b装了,难度不大,但整体过程还是很浪费时间,因此做点记录,由于耗时比较长,一些失败没来得及做记录,只记录了最后成功的一些指令。
这是我用的安装包
opencv4.4.0下载地址:https://pan.baidu.com/s/1t-wv_q3pob0CL4ID9I-0Ew 提取码:jsin
contrib下载地址:https://pan.baidu.com/s/1tDePnCIiKpLWUATx-vS4wg 提取码:tuom

1、备份原源文件以及查看源版本

在树莓派命令行界面输入以下命令备份源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp/etc/apt/sources.list.d/raspi.list/etc/apt/sources.list.d/raspi.list.bak

树莓派系统是是基于debian改造出来的, 具体型号可以通过终端输入:lsb_release -a 命令来查看自己的系统到底是 jessiestrerch 还是 buster。而对应的,只需要将下面换源的命令中相应的地方进行修改即可,一般是 buster。

2、换源

(这个源是我用过最舒服的,至少是对于本次安装而言,用的最顺手的,感谢博客)
打开/etc/apt/sources.list

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

打开/etc/apt/sources.list.d/raspi.list这个也得改!!!

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui

更新源sudo apt-get update
更新软件sudo apt-get upgrade(时间可能久点,但很重要!!!一定要更新,不然opencv的依赖库安装会出现各种问题)

3.安装依赖库

sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libjpeg8-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libjasper-dev
sudo apt-get install libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran     
sudo apt-get install libopencv-dev

4.编译opencv

4.1树莓派3b

在opencv4.4.0目录下新建build目录,并进入build底下

sudo cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
sudo make

编译时间较长,我花了一整个下午,cmake编译的选项可以自己根据需要挑选,之前尝试过打开其他选项,但编译时偶尔会出现下面的报错,但继续make仍然能继续编译,只不过到后面会出现死机,得强行断电,可能是3b性能不行,但后来使用上面的cmake,还是蛮顺利就编译通过了。
在这里插入图片描述

4.2树莓派4b

4.2.1扩容(非必要)

手上的树莓派4b性能还算好点,8G内存,比3b厉害不少,所以像模像样地根据他人教程给它扩容内存,树莓派默认内存只有100M,将其改为2048

sudo nano /etc/dphys-swapfile

在这里插入图片描述
重启dphys-swapfile服务,sudo /etc/init.d/dphys-swapfile restart

在这里插入图片描述

4.2.2 编译

同理,在opencv4.4.0目录下新建build目录,并进入build底下

sudo cmake -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/work/opencv/opencv_contrib/modules -D BUILD_EXAMPLES=ON -DCMAKE_SHARED_LINKER_FLAGS='-latomic' -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include 

如果不需要装contrib包的话,cmake指令与3b的相同

4.2.3 可能遇到的问题:

主要是由于opencv_contrib引起的,不装contrib包的应该不会遇到

  1. fatal error: boostdesc_bgm.i: No such file or directory
    #include “boostdesc_bgm.i”
    在这里插入图片描述
    解决方法,下载对应的文件,并复制到/opencv_contrib/modules/xfeatures2d/src/底下
    在这里插入图片描述

  2. fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
    #include “features2d/test/test_detectors_regression.impl.hpp”
    在这里插入图片描述
    将opencv4.4.0底下的opencv-4.4.0/modules/features2d/文件夹直接复制到build文件夹底下,之后重新编译即可

参考博客

【测评】树莓派3B和4B的SoC性能比较。系统自查、工具跑分
树莓派3b+安装OpenCV成功的一些经验分享
修改树莓派系统的虚拟内存大小(SWAP)
编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决

附:交叉编译(尚未成功)

交叉编译也是不错的选择,毕竟树莓派安装opencv4.4.0确实慢。安装树莓派的交叉编译工具在主机上编译,但我没成功,如果之后成功了,会进行更新

下载交叉编译工具:https://github.com/raspberrypi/tools
在/.bashrc文件中加入gcc交叉工具链环境变量。
sudo gedit ~/.bashrc
在该文件最后加入交叉工具链所在目录。

【64位系统】export PATH=$PATH:/home/chen/work/raspberrypi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

source ~/.bashrc
arm-linux-gnueabihf-gcc -v(成功的话能看编译器版本信息)
编译
sudo cmake-gui(配置编译器,见下图)
sudo make -j4

在这里插入图片描述
在这里插入图片描述

可能遇到的问题(有待解决)
1、error: operator ‘&&’ has no right operand
在这里插入图片描述
解决方法:cmake-gui时去掉with tiff

2、error: #error “No suitable threading library available.”
在这里插入图片描述
打开/3rdparty/protobuf/src/google/protobuf/stubs/common.cc,并在前面添加#define HAVE_PTHREAD即可

3、未解决,放弃了
在这里插入图片描述
在这里插入图片描述

这篇关于树莓派3B/4B编译安装opencv4.4.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402171

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP