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

树莓派4B使用opencv读取摄像头配置指南

本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。

一. 安装opecnv

  1. 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用,所以不要使用 miniconda

    如果你已经不幸安装了,那么参考
    树莓派上卸载miniconda

  2. 使用自带的 python3.7 即可,正式开始安装opencv以及各种包之前,需要注意:
    要用系统python3对应的pip3来安装!!!
    避免出现树莓派明明安装了opencv和numpy,却找不到的问题,提前看好python3和pip3的位置,可以参考:
    树莓派明明安装了opencv和numpy,系统却找不到

    然后正式开始安装opencv的时候,参考下面基本就可以安装好了
    树莓派4B–OpenCV安装依赖问题踩坑

  3. 然后测试opecv是否安装成功并且能够图形化显示,
    若果使用远程ssh的话(windows推荐mobaxterm,ubuntu强烈推荐windterm),本地记得配置好x11转发,
    还记得用python3运行

    import cv2
    f = cv2.imread("cat.jpg")
    cv2.imshow("cat", f)
    cv2.waitKey(0)
    

二. 尝试打开摄像头

  1. 新拿到的树莓派需要需要配置camera开关,确认摄像头模块已经启用:
    在终端中运行:

    sudo raspi-config
    

    在菜单中找到 Interface Options,选择 Camera,并启用。
    重启树莓派:

     sudo reboot
    
  2. 测试摄像头状态

    ls /dev/video*  
    

    如果有 video0 就说明摄像头没有问题

  3. 这时候大概还是不行,杀掉被占用摄像头的进程

    top 命令查看当前进程,将openflexure 的进程id关掉,如下面,openfle+的id是518,
    sudo kill -9 518

    pi@microscope:~ $ topPID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND1496 pi        20   0 1039520 772184 599632 R 157.9  20.9   2514:14 openflexure-con965 pi        20   0  389832  90232  65928 R 105.6   2.4   1700:09 openflexure-con518 openfle+  20   0  328536  74160  32504 S  13.6   2.0 210:55.58 python561 root      20   0  155964  58472  30404 S   9.3   1.6 134:05.59 Xorg971 pi        20   0  218376  41156  34816 S   6.6   1.1 114:46.47 openflexure-con931 pi        20   0  966832  92484  67448 S   5.3   2.5  99:04.76 openflexure-con
    pi@microscope:~ $ sudo kill -9 518
    
  4. 测试摄像头是不是ok了
    使用这个命令测试摄像头是否正常工作:

    raspivid -t 5000
    

    这会显示摄像头画面 5 秒钟。如果正常工作,说明硬件无问题。
    如果ssh远程连接,你本地不一定会显示摄像头画面,但是远端树莓派实际上应该会显示
    你本地表现则为停顿5秒,然后运行结束。

  5. 使用opencv测试摄像头是否ok,记得用python3运行

    import cv2cap = cv2.VideoCapture(0)
    if not cap.isOpened():print("无法打开摄像头")
    else:print("摄像头已打开")

三. 其他说明

  1. 如果不显示图形界面,现在应该不会遇见了, 因为我之前为了调试摄像头显存设置为512M,改回256M就好了

  2. 如果敲python查看摄像头命令之后卡住了,reboot就好了

  3. 有其他读取摄像头不成功的问题可以参考 在树莓派上使用自带的摄像头采集视频

相关文章:

树莓派4B使用opencv读取摄像头配置指南

本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。 一. 安装opecnv 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用&#xff…...

Spring Boot 进阶话题:部署

部署是将应用程序从开发环境移动到可以供用户访问的生产环境的过程。Spring Boot提供了多种部署选项,包括打包为可执行jar文件,使用Docker容器化,以及部署到云平台。 打包Spring Boot应用 Spring Boot应用可以打包为包含所有依赖、类和资源…...

Python 3 和 MongoDB 的集成使用

Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言,与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDB&#xff…...

perl语言中模式匹配的左右关系

这里简单记录一下,在perl语言中,关于模式匹配的一个细节: 在进行模式匹配的时候,左边写需要查找的字符串,右侧写匹配的关键字. 两边的顺序不一样就会导致匹配结果不一样. 测试代码:…...

【漏洞复现】网动统一通信平台(ActiveUC)接口iactiveEnterMeeting存在信息泄露漏洞

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 @TOC 一、漏洞概述 1.1漏洞简介 漏洞名称:网动统一通信平台(ActiveUC)接口iactiveEnterMeeting存在信息泄露漏洞漏洞编号:无漏洞类型:信息泄露漏洞威胁等级:高危影…...

C++ STL 容器系列(三)list —— 编程世界的万能胶,数据结构中的百变精灵

STL系列学习参考: C STL系列__zwy的博客-CSDN博客https://blog.csdn.net/bite_zwy/category_12838593.html 学习C STL的三个境界,会用,明理,能扩展,STL中的所有容器都遵循这个规律,下面我们就按照这三个境…...

Java经典面试题总结(附答案)2025

点击获取PDF版 10、如何将字符串反转? 添加到StringBuilder中,然后调用reverse()。 11、String 类的常用方法都有那些? equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpt…...

Stylus 浏览器扩展开发-Cursor AI辅助

项目起源 作为一个经常需要长时间盯着屏幕的开发者,我一直在寻找一个简单的方法来保护眼睛。最初的想法很简单:将网页背景色替换成护眼的豆沙绿。虽然市面上已经有类似的扩展,但我想要一个更加轻量且可定制的解决方案。 这个简单的需求逐渐…...

DAY35|动态规划Part03|LeetCode:01背包问题 二维、01背包问题 一维、416. 分割等和子集

目录 01背包理论基础(一) 基本思路 C代码 01背包理论基础(二) 基本思路 C代码 LeetCode:416. 分割等和子集 基本思路 C代码 01背包理论基础(一) 题目链接:卡码网46. 携带研究材料 文字…...

创建空向量:std::vector<int> v,刚创建时大小为0

创建一个空的std::vector<int> v会在刚创建时具有大小&#xff08;size&#xff09;为0的特点。这意味着此时向量中没有任何元素&#xff0c;而且其容量&#xff08;capacity&#xff09;也返回0&#xff0c;表明还没有为这个向量分配任何内存空间3。换句话说&#xff0c…...

VBA基础2

VBA基础2 sub过程语法对单元格进行赋值操作连续赋值不连续赋值 cells &#xff08;行&#xff0c;列&#xff09;行引用rows列引用 &#xff08;columns&#xff09;offset位移属性End属性&#xff08;指定返回&#xff09; 使用VBA编辑器需要用AltF11打开 或者VB编辑器打开 可…...

计算机网络-GRE基础实验二

前面我们学习了GRE隧道的建立以及通过静态路由指向的方式使得双方能够网络互联&#xff0c;但是通过静态路由可能比较麻烦&#xff0c;GRE支持组播、单播、广播因此可以在GRE隧道中运行动态路由协议使得网络配置更加灵活。 通过前面的动态路由协议的学习我们知道动态路由协议都…...

JSON 使用

JSON 使用 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript编程语言的一个子集,但因其文本格式清晰简洁,被广泛用于数据交换和存储。本文将详细介绍JSON的使用方法,包括其语法、数据类型、如…...

Leetcode—1539. 第 k 个缺失的正整数【简单】

2024每日刷题&#xff08;206&#xff09; Leetcode—1539. 第 k 个缺失的正整数 C实现代码 class Solution { public:int findKthPositive(vector<int>& arr, int k) {int missing 1;int cur 1;int n arr.size();int missingCnt 0;int ptr 0;for(; missingCn…...

深入浅出:PHP 控制结构与循环语句

文章目录 引言控制结构条件判断if-else 语句elseif 语句嵌套的 if 语句三元运算符 switch 语句 循环语句for 循环遍历数组使用 range() while 循环基本用法无限循环循环控制语句break 语句continue 语句do-while 循环 综合案例参考资料 引言 PHP 是一种广泛用于服务器端开发的…...

深入解析 Loss 减少方式:mean和sum的区别及其在大语言模型中的应用 (中英双语)

深入解析 Loss 减少方式&#xff1a;mean 和 sum 的区别及其在大语言模型中的应用 在训练大语言模型&#xff08;Large Language Models, LLM&#xff09;时&#xff0c;损失函数&#xff08;Loss Function&#xff09;的处理方式对模型的性能和优化过程有显著影响。本文以 re…...

c++ auto

在C中&#xff0c;auto 是一种类型推导关键字&#xff0c;它允许编译器根据初始化表达式的类型自动推导变量的类型。自 C11 标准引入以来&#xff0c;auto 使得代码更加简洁&#xff0c;并且可以减少冗长的类型声明&#xff0c;尤其是在类型名称非常复杂或难以立即确定的情况下…...

python中的列表、元组、字典的介绍与使用

目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素&#xff08;下标&#xff09; 3.修改元素&#xff08;下标&#xff09; 4.添加元素&#xff08;append、下标insert&#xff09; 5.删除…...

深入浅出:PHP中的表单处理全解析

引言 在Web开发的世界里&#xff0c;表单是用户与服务器之间交互的重要桥梁。它们允许用户提交信息&#xff0c;并通过后端语言&#xff08;如PHP&#xff09;进行处理。本文将带你深入了解PHP中的表单处理&#xff0c;从基础的创建和提交到高级的安全措施和实用技巧&#xff…...

双绞线直连两台电脑的方法及遇到的问题

文章目录 前言一、步骤二、问题总结&#xff1a;问题1:遇到ping不通的问题。问题2:访问其他电脑上的共享文件时提示输入网络凭证问题3:局域网共享文件时提示“没有权限访问&#xff0c;请与网络管理员联系请求访问权限” 前言 办公室里有两台电脑&#xff0c;一台装了显卡用于…...

告别数据标注!用Dynablox+Voxblox在ROS2上实现实时动态物体检测(保姆级配置)

零标注动态感知革命&#xff1a;DynabloxVoxblox在ROS2中的实战部署指南 当机器人在商场扶梯间遇到滚动的玩具球&#xff0c;或在仓库中识别扛着纸箱的工人时&#xff0c;传统基于深度学习的检测方法往往需要大量场景特定的标注数据。ETH Zurich与MIT联合发布的Dynablox技术&am…...

STM32F103C8T6实战:在最小系统板上运行轻量级TranslateGemma

STM32F103C8T6实战&#xff1a;在最小系统板上运行轻量级TranslateGemma 1. 引言 你有没有想过&#xff0c;在一块只有拇指大小的开发板上运行AI翻译模型&#xff1f;STM32F103C8T6最小系统板&#xff0c;这个通常用来控制LED灯、读取传感器的小家伙&#xff0c;现在居然能跑…...

三步解锁Bruno API测试工具的隐藏潜力

三步解锁Bruno API测试工具的隐藏潜力 【免费下载链接】bruno 开源的API探索与测试集成开发环境&#xff08;作为Postman/Insomnia的轻量级替代方案&#xff09; 项目地址: https://gitcode.com/GitHub_Trending/br/bruno Bruno作为Postman的开源替代品&#xff0c;以其…...

Qwen3.5-27B部署教程(Docker进阶):自定义模型路径、挂载外部存储与日志卷

Qwen3.5-27B部署教程&#xff08;Docker进阶&#xff09;&#xff1a;自定义模型路径、挂载外部存储与日志卷 1. 环境准备与快速部署 在开始之前&#xff0c;请确保您的系统满足以下要求&#xff1a; 硬件要求&#xff1a;至少4张RTX 4090 D 24GB显卡软件要求&#xff1a;已…...

Python+PySpark+Hadoop房价预测系统 房价预测 房源推荐系统 二手房推荐系统 随机森林回归预测模型、链家二手房 可视化大屏

1、项目 介绍 技术栈&#xff1a; Python房价预测分析系统 毕业设计 大屏 爬虫 机器学习 Flask框架、Echarts可视化、requests 爬虫、随机森林回归预测模型、链家二手房2、项目界面 &#xff08;1&#xff09;数据可视化大屏&#xff08;2&#xff09;房价预测&#xff08;3&am…...

避开这3个坑!GD32 ADC用DMA搬运数据时,定时器触发配置的常见误区与调试技巧

避开这3个坑&#xff01;GD32 ADC用DMA搬运数据时&#xff0c;定时器触发配置的常见误区与调试技巧 在嵌入式开发中&#xff0c;ADC&#xff08;模数转换器&#xff09;的数据采集是一个基础但至关重要的功能。当我们需要高效、稳定地采集大量数据时&#xff0c;通常会使用DMA…...

3步实现视频转PPT:extract-video-ppt工具让内容提取效率提升80%

3步实现视频转PPT&#xff1a;extract-video-ppt工具让内容提取效率提升80% 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化办公日益普及的今天&#xff0c;视频转PPT工具已…...

从机械臂精度控制到模型防过拟合:工程师视角下的‘无穷范数’实用指南

从机械臂精度控制到模型防过拟合&#xff1a;工程师视角下的‘无穷范数’实用指南 在工业自动化和机器学习领域&#xff0c;工程师们常常面临一个共同挑战&#xff1a;如何有效控制系统中的"最坏情况"。无论是机械臂关节的极限误差&#xff0c;还是神经网络对抗样本…...

网盘直链获取工具:高效解析与实用指南

网盘直链获取工具&#xff1a;高效解析与实用指南 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&#xff0c;无需输入…...

革命性LLM优化代理OptiLLM:零训练实现2-10倍推理性能提升

革命性LLM优化代理OptiLLM&#xff1a;零训练实现2-10倍推理性能提升 【免费下载链接】optillm Optimizing inference proxy for LLMs 项目地址: https://gitcode.com/gh_mirrors/op/optillm OptiLLM是一款强大的LLM优化代理工具&#xff0c;能够在不进行任何模型训练的…...