当前位置: 首页 > ai >正文

树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法

首先是我在树莓派中 使用OpenCV 读取网络视频流, 如海康威视 通过rtsp协议地址读取 会发生延迟和丢包的情况 后来使用ffmpeg和OpenCV 读取视频流 丢报的问题减少了 但是长时间运行 还是会造成延迟和卡顿 最后直接卡死画面 后来试了一下GStreamer 管道流 是树莓派支持的 但是原生的OpenCV库 不支持GStreamer  需要通过cmake 改写 以下是办法 

1`下载原文件并解压

# 创建编译目录
mkdir ~/opencv_build && cd ~/opencv_build# 下载 OpenCV 和 OpenCV contrib(可选)
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip# 解压
unzip opencv.zip
unzip opencv_contrib.zip

2`进入 OpenCV 源码并创建 build 目录: 按照你的opencv 目录进入

cd ~/你的路径/opencv
mkdir build && cd build

3`激活你的虚拟环境

source ~/你的虚拟环境路径/虚拟环境名字/bin/activate

4`执行 CMake 配置命令:

cmake -D CMAKE_BUILD_TYPE=Release \-D CMAKE_INSTALL_PREFIX=你的虚拟环境路径/虚拟环境名字/lib/python3.11/site-packages \-D OPENCV_EXTRA_MODULES_PATH=opencv_contrib安装目录/opencv_contrib/modules \-D PYTHON_EXECUTABLE=你的虚拟环境路径/虚拟环境名字/bin/python3 \-D BUILD_opencv_python3=ON \-D BUILD_opencv_python2=OFF \-D WITH_FFMPEG=ON \-D WITH_GSTREAMER=ON \-D WITH_V4L=ON \-D BUILD_TESTS=OFF \-D BUILD_PERF_TESTS=OFF \..

如果这一步成功,会看到一大堆检测通过的结果,且最后几行显示:

-- Configuring done
-- Generating done
-- Build files have been written to: ...

5`如果没报错,请继续执行:

make -j2  # 推荐 j2,树莓派性能有限 

6`安装到虚拟环境

make install

7`安装完之后验证

进入虚拟环境
source ~/你的虚拟环境路径/你的虚拟环境名字/bin/activatepython3 -c "import cv2; print(cv2.__file__)"
python3 -c "import cv2; print(cv2.getBuildInformation())"
你应该能看到:cv2 路径在你的虚拟环境中GStreamer: YESPython 3.11: YES

8`常见导致构建失败的原因:

问题描述
内存不足树莓派即使是 5B 也可能编译中内存不足,建议添加 swap 或减少并发:make -j2
依赖库不全如未正确安装 ffmpeg, gstreamer, libjpeg-dev 等依赖
contrib 模块下载失败某些模块会尝试下载模型,若超时可能卡住或失败
Python 路径不对cmake 的 Python 路径必须与你虚拟环境匹配,否则生成不出 cv2make
http://www.xdnf.cn/news/1613.html

相关文章:

  • 从数据到智慧:解密机器学习的自主学习密码
  • springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【Python】Python在Linux上安装等操作流程以及注意事项| 基础知识
  • PTA -L1-001 Hello World
  • 项目班——0419——chrono时间库
  • VIC-3D非接触全场应变测量系统用于小尺寸测量之电子元器件篇—研索仪器DIC数字图像相关技术
  • 前端面经-JS篇(四)--回调地狱、promise异步编程、Proxy 与 Reflect 、模块化
  • JMeter 安装及使用 [软件测试工具]
  • 【数据分析实战】使用 Matplotlib 绘制玫瑰图
  • 什么是机器视觉3D碰撞检测?机器视觉3D碰撞检测是机器视觉3D智能系统中安全运行的核心技术之一
  • 使用 Docker 安装 SQL Server 2022 并解决 Navicat 连接问题
  • Linux漏洞管理:自动化扫描与补丁更新策略
  • 【软件设计师】模拟题一
  • 修改el-select背景颜色
  • wait_event 类接口详解
  • 题目:这不是字符串题
  • 数据库day-07
  • 晶振不集成到芯片内部的原因分析
  • BDO分厂开展地沟“大清肠”工作
  • Spring boot 中的IOC容器对Bean的管理
  • 【Python笔记 04】输入函数、转义字符
  • 【一次成功!】Ubuntu22.04 安装 Autoware、 cuda、 cudnn、 TensorRT
  • 力扣hot100 91-100记录
  • 面试题:Redis 一次性获取大量Key的风险及优化方案
  • 真.从“零”搞 VSCode+STM32CubeMx+C <1>构建
  • simsun.ttf simsun.ttc
  • 第15章:MCP服务端项目开发实战:性能优化
  • 基于SpringBoot+Vue的影视系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践
  • 安宝特案例 | 物流仓储头部企业应用AR+作业流,规范日常安全点检,保障消防安全