H616连接摄像头

        (1)首先将USB摄像头连接到OrangePi开发板的USB接口

        (2)通过lsmod命令查看是否加载了uvcvideo模块

lsmod | grep video

        (3)通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为/dev/video0

sudo apt update
sudo apt install -y v4l-utils
v4l2-ctl --list-devices
#注:v4l2 中的 l 是小写字母 l,不是数字 1。
#注:video 的序号不一定都是 video0,请以实际看到的为准。

 

        (4)使用 fswebcam 测试 USB 摄像头

#安装 fswebcam
sudo apt update
sudo apt-get install -y fswebcam#拍照
sudo fswebcam -d /dev/video0 \ --no-banner -r 1280x720 -S 5 ./image.jpg
#-d 选项用于指定 USB 摄像头的设备节点
#--no-banner 用于去除照片的水印
#-r 选项用于指定照片的分辨率
#-S 选项用设置于跳过前面的帧数
#./image.jpg 用于设置生成的照片的名字和路径#在服务器版的 linux 系统中,拍完照后可以使用 scp 命令将拍好的图片传到Ubuntu PC 上镜像观看
scp image.jpg test@192.168.1.55:/home/test(根据实际情况修改 IP 地址和路径)#在桌面版的 linux 系统中,可以通过 HDMI 显示器直接查看拍摄的图片

        (5)使用 mjpg-streamer 测试 USB 摄像头

#下载 mjpg-streamer#Github 的下载地址:
git clone https://github.com/jacksonliam/mjpg-streamer#Gitee 的镜像下载地址为:
git clone https://gitee.com/leeboby/mjpg-streamer#安装依赖的软件包#Ubuntu 系统
sudo apt-get install -y cmake libjpeg8-dev#Debian 系统
sudo apt-get install -y cmake libjpeg62-turbo-dev#编译安装 mjpg-streamer
cd mjpg-streamer/mjpg-streamer-experimental
make -j4
sudo make install#启动mjpg_streamer
export LD_LIBRARY_PATH=.
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -u -f 30" -o "./output_http.so -w ./www"#也可以在start.sh中直接修改
vi start.sh
#将./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
#修改为./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -u -f 30" -o "./output_http.so -w ./www" #注意这里的video1需要根据实际情况修改
./start.sh#在和开发板同一局域网的 Ubuntu PC 或者 Windows PC 或者手机的浏览器中输入【开发板的 IP 地址:8080】就能看到摄像头输出的视频了

        (6) 执行拍照,获取图片

#获取图片
wget http://192.168.1.6:8080/?action=snapshot -O /tmp/garbage.jpg

        (7)设置开机自启动

cd ~
touch mjpg.sh
vi mjpg.sh
#输入
####################
#!/bin/bashcd mjpg-streamer/mjpg-streamer-experimental
./start.sh
####################chmod +x mjpg.sh
/home/orangepi/mjpg.sh#开机起来当前用户下面所有的执行程序(配置开机启动的位置)
cd /etc/xdg/autostart/sudo cp im-launch.desktop mjpg.desktop
sudo vi mjpg.desktop
#清空输入
####################
[Desktop Entry]
Name=mjpg
Exec=/home/orangepi/mjpg.sh
Type=Application
NoDisplay=true
#####################重启然后查看mjpg的服务有没有起来
sudo reboot -f
ps ax | grep mjpg

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

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

相关文章

剖析DeFi交易产品之UniswapV4:创建池子

本文首发于公众号:Keegan小钢 创建池子的底层函数是 PoolManager 合约的 initialize 函数,其代码实现并不复杂,如下所示: function initialize(PoolKey memory key, uint160 sqrtPriceX96, bytes calldata hookData)externalover…

Redis---保证主从节点一致性问题 +与数据库数据保持一致性问题

保证主从节点一致性问题 Redis的同步方式默认是异步的,这种异步的同步方式导致了主从之间的数据存在一定的延迟,因此Redis默认是弱一致性的。 解决: 1.使用Redisson这样的工具,它提供了分布式锁的实现,确保在分布式环…

【C语言】使用C语言编写并使用gcc编译动态链接库

【C语言】使用C 语言编写并使用 gcc 编译动态链接库 1.背景2.使用C编写代码3.使用gcc编译代码1.背景 在windows下开发很多程序接口被封装到动态链接库供其它开发者使用。 本博客使用C语言编写并使用gcc 编译 一个动态链接库文件FpdSys.dll; 然后使用C/C++/C#/Python去调用动态…

代码生成器使用指南,JeecgBoot低代码平台

JeecgBoot 提供强大的代码生成器,让前后端代码一键生成,实现低代码开发。支持单表、树列表、一对多、一对一等数据模型,增删改查功能一键生成,菜单配置直接使用。 同时提供强大模板机制,支持自定义模板,目…

[单master节点k8s部署]15.安全机制

用户访问集群需要认证、授权、准入三个步骤。apiserver是整个集群访问控制的唯一入口。 认证 认证是对用户的身份认证,通常包括用户名密码认证,但是也包括对service account的认证。 限制不同用户访问集群 生成ssl密钥 在/etc/kubernetes/pki/ 目录…

Python 基础 (标准库):heapq (堆)

1. 官方文档 heapq --- 堆队列算法 — Python 3.12.4 文档 2. 相关概念 堆 heap 是一种具体的数据结构(concrete data structures);优先级队列 priority queue 是一种抽象的数据结构(abstract data structures)&…

在非 antd pro 项目中使用 umi OpenAPI

大家好,我是松柏。自从跟着鱼皮哥使用了ant design pro中的OpenAPI插件之后,我已经无法忍受自己写请求后端接口的方法了,所以这篇文章记录一下如何在非ant design pro项目中使用OpenAPI。 安装依赖 首先我们需要安装包umijs/openapi&#x…

上交举办“大模型奥林匹克竞赛”,GPT-4o仅得39分

大模型的奥林匹克竞赛来了! 最近,上交构建了一个全面、极具挑战性的奥赛级别的基准——OlympicArena,从来自62个不同奥林匹克竞赛中筛选出11,163个问题,涵盖数学、物理、化学、生物、地理、天文学和计算机科学等七个学科&#xf…

[22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪

Opencv_CUDA应用之 使用背景相减法进行对象跟踪 背景相减法是在一系列视频帧中将前景对象从背景中分离出来的过程,它广泛应用于对象检测和跟踪应用中去除背景 背景相减法分四步进行:图像预处理 -> 背景建模 -> 检测前景 -> 数据验证 预处理去除…

博客搬家前台申请功能下线通知

尊敬的用户们: 您好! 感谢您一直以来对我们博客平台的关注与支持。为了更好地优化我们的服务质量和用户体验,经过慎重考虑,我们决定将于近期对博客搬家前台申请功能进行下线处理。在此,我们向广大用户表示诚挚的歉意…

仿论坛项目--第一部分相关习题

1.关于IOC注解,说法正确的是 A.autowired用于注入bean,该注解只能写在成员变量的前面 B.Qualifier用于声明bean的名称,该注解只能引用bean的自定义名称 C.Bean用于装配第三方的Bean,不能装配自定义的bean D.Configuration用于声明配置类&…

AD9026芯片开发实录6-example code

官方发布的软件包中,带了一份example code,用于向客户展示API的调用方法以及基于官方的验证版ADRV902X最简单的bring up的流程。 该 example 位于软件包的路径下:“\Adi.Adrv9025.Api\src\c_src\app\example\”。 代码组成: initd…

JavaScript 实用技巧

1. 使用 const 和 let 替代 var 在 ES6 之前,我们通常使用 var 声明变量。但如今,推荐使用 const 和 let,因为它们具有块级作用域,可以避免很多潜在的问题。 const PI 3.14; // 常量,无法重新赋值 let age 25; // …

边界框在目标检测中的作用与应用

目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中识别和定位感兴趣的目标。边界框(Bounding Box)是目标检测中常用的一种表示方法,用于确定目标在图像中的确切位置。本文将详细探讨边界框的概念、它在目标检测中的角色…

使用ElementUI组件库

引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…

Redis中设置验证码

限制一分钟内最多发送5次,且每次有效时间是5分钟! String 发送验证码(phoneNumber) {key "shortMsg:limit:" phoneNumber;// 设置过期时间为 1 分钟(60 秒)// 使⽤ NX,只在不存在 key 时才能设置成功bool…

【QT】常用控件|widget|QPushButton|RadioButton|核心属性

目录 ​编辑 概念 信号与槽机制 控件的多样性和定制性 核心属性 enabled geometry ​编辑 windowTiltle windowIcon toolTip styleSheet PushButton RadioButton 概念 QT 控件是构成图形用户界面(GUI)的基础组件,它们是实现与…

tensorflow和numpy的版本

查看cuda版本 dpkg -l | grep cuda i libcudart11.0:amd64 11.5.117~11.5.1-1ubuntu1 amd64 NVIDIA CUDA Runtime Library ii nvidia-cuda-dev:amd64 11.5.1-1ubuntu1 …

搜维尔科技:数据手套为什么要选择SenseGlove

了解 SenseGlove SenseGlove 是一支由电子工程师、触觉研究人员和计算机视觉专家、XR 开发人员、UX 设计师和产品创新者组成的科幻爱好者团队,他们拥有丰富人类能力和赋予 Metaverse 意义的技能和热情。 推进触觉技术是我们实现这一目标的方式。 公司及产品背景 S…

【C++知识点总结全系列 (02)】:C++中的语句、运算符和表达式详细总结

文章目录 1、语句(1)简单语句A.空语句B.复合语句 (2)条件语句(3)迭代语句A.常规for循环B.范围for循环C.while和do...while (4)跳转语句A.break语句B.continue语句C.goto语句 (5)异常处理语句A.标准异常B.throw抛出异常 (6)try语句 2、运算符(1)算术运算符(2)关系运算符(3)逻辑运…