我是靠谱客的博主 光亮钢铁侠,最近开发中收集的这篇文章主要介绍关于opencv-python库在树莓派上调用摄像头的问题关于opencv-python库在树莓派上调用摄像头的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于opencv-python库在树莓派上调用摄像头的问题

  • 关于opencv-python库在树莓派上调用摄像头的问题
    • 背景
    • 问题:cv2.VideoCapture()函数参数问题
      • 调用图中摄像头时
      • 调用手机摄像头时
      • 关于cv2.CAP_DSHOW
    • 碎碎念
    • 参考

背景

参加学院内比赛时用到了树莓派3B+,系统是Raspberry Pi OS。程序源码是在Windows环境下写的,跑起来毫无问题,但是在树莓派上就开始问题百出。这里分享一下我在使用opencv库调用摄像头时发现了一些坑

问题:cv2.VideoCapture()函数参数问题

调用图中摄像头时

在这里插入图片描述
cv2.VideoCapture()这个函数无论是在书里还是网上讲的大多都是图一
这并没有错。但在树莓派上调用时需要更改参数,改为

cap = cv2.VideoCapture(1)

笔者没搞清楚为啥,翻了下文档也没搞懂摄像头的顺序咋查,官方文档放在参考里了,有需要的同志可以去看看

调用手机摄像头时

摄像头是后来才买的,一开始是用队友的手机连树莓派充当摄像头。调用时用cv2.VideoCapture(0)就行,不用改成1。

关于cv2.CAP_DSHOW

笔者的电脑在用cv2.VideoCapture(0)时,程序结束后会报个很迷的错。

[ WARN:0] global C:UsersappveyorAppDataLocalTemp1pip-req-build-6lylwdczopencvmodulesvideoiosrccap_msmf.cpp (435) `anonymous-namespace’::SourceReaderCB::~SourceReaderCB terminating async callback

原因未知,没在官方文档中找到。改成

cv2.VideoCapture(0,cv2.CAP_DSHOW)

结束时就不会报错了。满迷惑的。
但是在树莓派上运行时不能加cv2.CAP_DSHOW,不然就会报错,甚至打不开摄像头。

碎碎念

有幸拿到了二等奖,本来是没打算参加的,临时有了主意才拉个队友一起参加。整个作品的制作时间没超过三天,紧赶慢赶还是赶上了。非常感谢我的队友的技术支持和学长的帮助。

参考

图一原帖链接
关于VideoCapture()

最后

以上就是光亮钢铁侠为你收集整理的关于opencv-python库在树莓派上调用摄像头的问题关于opencv-python库在树莓派上调用摄像头的问题的全部内容,希望文章能够帮你解决关于opencv-python库在树莓派上调用摄像头的问题关于opencv-python库在树莓派上调用摄像头的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部