树莓派4B使用opencv读取摄像头配置指南
本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。
一. 安装opecnv
-
我们的树莓派4B默认是armv7l架构,安装的
miniconda最新的版本Miniconda3-latest-Linux-armv7l.sh仍然是python3.4几乎无法使用,所以不要使用miniconda如果你已经不幸安装了,那么参考
树莓派上卸载miniconda -
使用自带的 python3.7 即可,正式开始安装opencv以及各种包之前,需要注意:
要用系统python3对应的pip3来安装!!!
避免出现树莓派明明安装了opencv和numpy,却找不到的问题,提前看好python3和pip3的位置,可以参考:
树莓派明明安装了opencv和numpy,系统却找不到然后正式开始安装opencv的时候,参考下面基本就可以安装好了
树莓派4B–OpenCV安装依赖问题踩坑 -
然后测试opecv是否安装成功并且能够图形化显示,
若果使用远程ssh的话(windows推荐mobaxterm,ubuntu强烈推荐windterm),本地记得配置好x11转发,
还记得用python3运行import cv2 f = cv2.imread("cat.jpg") cv2.imshow("cat", f) cv2.waitKey(0)
二. 尝试打开摄像头
-
新拿到的树莓派需要需要配置camera开关,确认摄像头模块已经启用:
在终端中运行:sudo raspi-config在菜单中找到 Interface Options,选择 Camera,并启用。
重启树莓派:sudo reboot -
测试摄像头状态
ls /dev/video*如果有 video0 就说明摄像头没有问题
-
这时候大概还是不行,杀掉被占用摄像头的进程
top 命令查看当前进程,将openflexure 的进程id关掉,如下面,openfle+的id是518,
sudo kill -9 518pi@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-conpi@microscope:~ $ sudo kill -9 518 -
测试摄像头是不是ok了
使用这个命令测试摄像头是否正常工作:raspivid -t 5000这会显示摄像头画面 5 秒钟。如果正常工作,说明硬件无问题。
如果ssh远程连接,你本地不一定会显示摄像头画面,但是远端树莓派实际上应该会显示
你本地表现则为停顿5秒,然后运行结束。 -
使用opencv测试摄像头是否ok,记得用python3运行
import cv2cap = cv2.VideoCapture(0) if not cap.isOpened():print("无法打开摄像头") else:print("摄像头已打开")
三. 其他说明
-
如果不显示图形界面,现在应该不会遇见了, 因为我之前为了调试摄像头显存设置为512M,改回256M就好了
-
如果敲python查看摄像头命令之后卡住了,reboot就好了
-
有其他读取摄像头不成功的问题可以参考 在树莓派上使用自带的摄像头采集视频
相关文章:
树莓派4B使用opencv读取摄像头配置指南
本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。 一. 安装opecnv 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用ÿ…...
Spring Boot 进阶话题:部署
部署是将应用程序从开发环境移动到可以供用户访问的生产环境的过程。Spring Boot提供了多种部署选项,包括打包为可执行jar文件,使用Docker容器化,以及部署到云平台。 打包Spring Boot应用 Spring Boot应用可以打包为包含所有依赖、类和资源…...
Python 3 和 MongoDB 的集成使用
Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言,与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDBÿ…...
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会在刚创建时具有大小(size)为0的特点。这意味着此时向量中没有任何元素,而且其容量(capacity)也返回0,表明还没有为这个向量分配任何内存空间3。换句话说,…...
VBA基础2
VBA基础2 sub过程语法对单元格进行赋值操作连续赋值不连续赋值 cells (行,列)行引用rows列引用 (columns)offset位移属性End属性(指定返回) 使用VBA编辑器需要用AltF11打开 或者VB编辑器打开 可…...
计算机网络-GRE基础实验二
前面我们学习了GRE隧道的建立以及通过静态路由指向的方式使得双方能够网络互联,但是通过静态路由可能比较麻烦,GRE支持组播、单播、广播因此可以在GRE隧道中运行动态路由协议使得网络配置更加灵活。 通过前面的动态路由协议的学习我们知道动态路由协议都…...
JSON 使用
JSON 使用 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript编程语言的一个子集,但因其文本格式清晰简洁,被广泛用于数据交换和存储。本文将详细介绍JSON的使用方法,包括其语法、数据类型、如…...
Leetcode—1539. 第 k 个缺失的正整数【简单】
2024每日刷题(206) 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 减少方式:mean 和 sum 的区别及其在大语言模型中的应用 在训练大语言模型(Large Language Models, LLM)时,损失函数(Loss Function)的处理方式对模型的性能和优化过程有显著影响。本文以 re…...
c++ auto
在C中,auto 是一种类型推导关键字,它允许编译器根据初始化表达式的类型自动推导变量的类型。自 C11 标准引入以来,auto 使得代码更加简洁,并且可以减少冗长的类型声明,尤其是在类型名称非常复杂或难以立即确定的情况下…...
python中的列表、元组、字典的介绍与使用
目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素(下标) 3.修改元素(下标) 4.添加元素(append、下标insert) 5.删除…...
深入浅出:PHP中的表单处理全解析
引言 在Web开发的世界里,表单是用户与服务器之间交互的重要桥梁。它们允许用户提交信息,并通过后端语言(如PHP)进行处理。本文将带你深入了解PHP中的表单处理,从基础的创建和提交到高级的安全措施和实用技巧ÿ…...
双绞线直连两台电脑的方法及遇到的问题
文章目录 前言一、步骤二、问题总结:问题1:遇到ping不通的问题。问题2:访问其他电脑上的共享文件时提示输入网络凭证问题3:局域网共享文件时提示“没有权限访问,请与网络管理员联系请求访问权限” 前言 办公室里有两台电脑,一台装了显卡用于…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
