X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
玄铁RISC-V活动专区
[经验分享] 【玄铁杯第三届RISC-V应用创新大赛】Lichee PI 4A 之OpenCV与摄像头抓拍
小默叔叔
2023-12-6 20:01
楼主
# 【玄铁杯第三届RISC-V应用创新大赛】Lichee PI 4A 之OpenCV与摄像头抓拍 往期文章: 【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A+开箱 https://bbs.eeworld.com.cn/thread-1257258-1-1.html ## 前言 USB视频类(UVC)是一个旨在简化USB连接上视频流功能的标准化协议。这一标准对于确保各类视频设备,如网络摄像头、数码摄像机、模拟视频转换器以及模拟和数字电视调谐器等,能够与计算机和其他主机设备无缝对接起着关键作用。 UVC的一个主要优势在于它对多种视频格式的支持,包括但不限于YUV、MJPEG、MPEG-2 TS、H.264和DV。这种多样性在为视频设备向主机系统传达其功能方面发挥着核心作用。此外,UVC还规定了用于控制视频流的特定参数和特征,提高了数据传输的效率和质量。 我这里使用的摄像头是以前参加活动的一款USB摄像头,然后计划使用OpenCV库去调用摄像头实现抓怕和图片存储,为项目后续的需要做准备。 ## 正文内容 1. 发现开发环境已经安装了python3,但还是习惯直接打python运行,而不是python3,所以这里增加个软链接 ```c # 创建新的软链接,这样每次使用python就不用打python3了 sudo ln -s /usr/bin/python3 /usr/bin/python ``` 2. 安装 Python 版本的 OpenCV,需要指令如下 ```bash sudo apt install python3 python3-pip sudo apt install python3-opencv sudo apt install libqt5gui5-gles ``` 3. 确认我们摄像头挂载在哪里,输入ls /dev/video*,看到的结果如下所示
4. 打开摄像头逻辑(基于OpenCV 的 Python版本) - 打开摄像头 `cap = cv2.VideoCapture(0)` - 读取摄像头每帧图像 `frame = cap.read()` - 显示图像`cv2.imshow("USB Camera", frame)` - 结束循环,释放摄像头关闭所有接口 - `cap.release()` - `cv2.destroyAllWindows()` 5. 基于上述内容,我们可以做个扩展(其实也是基于我后面项目的需求做了开发) - 打开摄像头,并获取每帧图像 - 每隔3s保存一张图片,并命名为 x.jpg (x的范围是0-6,x递增) - 循环保存 0.jpg → 6.jpg (比如超过6,则从0重新开始,覆盖掉之前的0) - 代码如下 ```bash import cv2 import time cap = cv2.VideoCapture(0) if not cap.isOpened(): print("The camera is not opened") exit(1) img_counter = 0 while True: ret, frame = cap.read() if not ret: print("Failed to grab frame") break img_name = f"{img_counter % 7}.jpg" # 使用模运算保证图片名称在0-6之间 cv2.imwrite(img_name, frame) print(f"{img_name} written!") # 因为只是demo 暂时不考虑img_counter 范围 img_counter += 1 # 等待 3 秒 time.sleep(3) cap.release() ``` 运行命令
本帖最后由 小默叔叔 于 2023-12-8 08:28 编辑
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
随便看看
专为在校生打造:抛出你头脑中的种种疑问吧!一起在EEWORLD 暑期酷学!(已更新9讲)
CircuitPython 鸭型计算机 cyberDuCK
基于FPGA的高速等精度频率测量系统设计.rar
关于接地:数字地、模拟地、信号地、交流地、直流地、屏蔽地、浮地,特别经典哦
天线增益是什么意思?
电源分割,希望对大家有用!
43个你必知的健康常识
三星2440不能识别U盘
求防盗主机控制板的方案
器件引脚符号DNC和NC到底是什么区别?
wince的蓝牙适配器问题
【SC8905 EVM测评】+单片机I2C通讯实验
海康威视回应美国禁令:所使用各种元器件都有备选
请问谁有纽扣电池底座封装(直径22mm的)pcb资料,可以发一个么
如何实现BLUENRG1/2蓝牙MESH和BLE REMOTE同时生效?
单片机C语言-十六种方式流水灯(13)
如何使用霍尔效应传感器和电流检测放大器进行真无线耳机设计
高清将是监控趋势 未来侧重IP系统的竞争
net broken 如何修复
想请各位爱好功放电路的大神留步,烦请指点一二!
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复