在树莓派上安装c++版本的opencv并运行

news/2024/12/22 0:00:35/文章来源:https://www.cnblogs.com/CD13R/p/18445372

 

这里默认你用的是树莓派的镜像(因为ubantu对树莓派的性能占用有点大)

树莓派安装使用 opencv c++版本

首先我们安装依赖

sudo apt-get install build-essentialsudo apt-get install cmake libgtk2.0-dev pkg-config libswscale-devsudo apt-get install libjpeg-dev libpng-dev libtiff-dev

 

然后在opencv官网下载源码

找个文件夹存放压缩包并解压

Unzip-opencv-4.10.0.zip

进入解压完的文件夹创建build文件夹执行cd命令在build文件夹下执行编译

Cd opencv-4.10.0

mkdir build

cd build

sudo make

sudo make install

安装完毕,让我们来配置环境

cd /etc/ld.so.conf.d/

sudo touch opencv4.conf

sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'

更新pkg-config

Sudo ldconfig

将opencv4.pc文件添加到/usr/lib/pkgconfig,/usr/local/lib/pkgconfig

(也可能是lib64)

build/unix-install/opencv4.pc(opencv4.pc目录)

sudo gedit /etc/bash.bashrc

在结尾加上

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig

export PKG_CONFIG_PATH

最后使用pkg-config --modversion opencv4测试出现

即安装完成

编程时正常导入如#include <opencv2/opencv.hpp>(根据你需要的库导入)这里提供一个demo(插摄像头运行)

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;int main(int argc, const char *argv[]) {
Mat img;
VideoCapture capture(0);//?????
while(1){
capture>>img;
imshow("test",img);
waitKey(20);
} }

 

 

编译cpp文件(使用g++编译test.cpp,并将其命名为test,)

g++  test.cpp -o test `pkg-config --cflags --libs opencv4

 

`pkg-config --cflags --libs opencv4':使用pkg-config查找opencv4库的编译器和连接器的参数(这里因为我们已经提前配置可pkg-config所以可以这样用)

最后 sudo ./test运行出现摄像头画面即成功。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/807317.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读数据湖仓05数据需要的层次

读数据湖仓05数据需要的层次1. 业务价值 1.1. 技术和商业在这个世界上是相互交织的1.1.1. 基础数据在商业和技术应用中是不可或缺的1.2. 技术的存在是为了推动商业的目标和进步,并由企业出资支持1.2.1. 当技术推动商业发展时,商业会蓬勃发展,技术也会随之繁荣1.2.2. 当技术发…

Hadoop详细安装步骤,附带安装完的虚拟机。

Hadoop集群搭建笔记 环境:window11家庭中文版 23H2 VMware16.1.2 镜像:CentOS-7-x86_64-DVD-2009.iso jdk:jdk-8u202-linux-x64.tar.gz hadoop:hadoop-3.3.5.tar.gz 集群分布主机 角色node1(192.168.100.100) NN DN RM NMnode2(192.168.100.101) SNN DN …

Nuxt.js 应用中的 app:redirected 钩子详解

title: Nuxt.js 应用中的 app:redirected 钩子详解 date: 2024/10/3 updated: 2024/10/3 author: cmdragon excerpt: app:redirected 是 Nuxt.js 中的一个钩子,主要用于处理服务器端渲染(SSR)过程中发生的重定向。该钩子在重定向被执行之前被调用,允许开发者在重定向发生前…

全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串

在Python中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些字节的实际数据结构,字节序列和可变字节字符串的主要区别在于其可变性和用途,bytearray是可变的字节序列,允许修改其内容。全网最适合入门的面向对象编程教程:55 Python 字符串与序列化-字节…

Zookeeper 基础学习

Zookeeper 基础学习 ​ Zookeeper 官网: http://zookeeper.apache.org/ 注:以下操作在CentOS7环境操作。 ​ Zookeeper 是 Apache 的一个分布式服务框架,是 Apache Hadoop 的一个子项目。官方文档上这么解释 Zookeeper,它主要是用来解决分布式应用中经常遇到的…

妙用编辑器:把EverEdit变成计算器

妙用编辑器:把EverEdit变成计算器 应用场景 日常工作过程中,会存在需要计算一些数据的场景,调用系统的计算器当然可以完成这项工作,但是需要来回切换,且系统自带的计算器没有表达式计算功能,真是不方便。 解决办法 一般比较流行的文本编辑器都支持脚本语言,比如:EverEd…

轻松搞定Java毕设:为全国大学生提供高效、优质的Java毕业设计代做服务

随着毕业季的临近,许多大学生面临着毕业设计的巨大压力。尤其是对于那些选择计算机相关专业的学生来说,毕业设计通常要求在一个较短的时间内完成复杂的项目开发,这对于技术掌握尚不成熟的学生来说无疑是一个巨大的挑战。再加上其他课程的压力和生活的琐事,毕业设计可能会成…

JAVA毕设代做(项目+论文+源码)

马上就要做毕业设计啦,计算机专业的小伙伴们终于开始紧张啦~ 但是Java相关的毕业设计,真的太难啦,都不知道做什么选题!!! 如果你平时没认真学,那么很可能根本就不知道怎么做毕业设计! 尤其是对于摸鱼上瘾的同学,稍不注意就容易挂掉! 大家现在担心的无非下面几点! 我…

星座图整形技术在光纤通信中的matlab性能仿真,分别对比标准QAM,概率整形QAM以及几何整形QAM

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要星座图整形技术(Constellation Shaping Techniques)是现代光纤通信系统中提升数据传输效率的关键技术之一,通过优化星座点的布局和调制符号的使用概率,能在不增加系统功率或带宽的…

用难测的期待去对抗既定的焦虑和迷茫

大三到今天,经历了很多,不管是两次开发实习,还是一边秋招一边考公,或是毕业一个月后被鸽转正,又或是无数次的面试和考试,无数次的高铁和大巴,无数次的破而后立......都让我改变了此前狭隘的看法。回顾以往,其实我从很早以前就觉得路好像是直来直去的,一眼能看到底部,…

基于无线传感器网络的节点分簇算法matlab仿真

1.程序功能描述 对传感器网络进行分簇,在分簇过程中考量的有节点能量状态、节点拓扑位置、孤立节点删除等条件。与LEACH算法比较,对比如下几个方面指标: 1.网络从初始状态直到首个节点因能量耗尽而死亡的持续时间。 2.显示了随着时间的变化,一些节点开始死亡,整个网…

《Java 高级篇》八:新特性

Java 中的一些新特性:Lambda 表达式、函数式接口、Stream API。Author: ACatSmiling Since: 2024-10-01Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一…