python opencv 调用摄像头失败问题的解决 Windows
省流:
- 内含 Python Opencv 双目相机拍照代码(手动 or 自动),可自取;
- 如果你的 cv2.VideoCapture() 函数卡住但不报错,打开 Windows “相机”应用可以正常看到摄像头画面,且能够正常用 cv2.imshow() 打开图像,请继续阅读。
这个学期选修了方璐老师的媒体与认知课程,期末的 Final Project 涉及到双目相机的标定问题(也许期末做完 Project 我会发一些感想和体会?)
助教提供了一段基于 Python Opencv 的双目相机自动拍摄和保存的代码给我们直接用,但是在运行的时候我遇到了奇怪的现象,程序卡在 cv2.VideoCapture(0) 这里就不能运行,不报错,就是单纯的卡在这里。先放代码:
import timeimport cv2
import numpy as npAUTO = False # 自动拍照,或手动按s键拍照
INTERVAL = 2 # 自动拍照间隔camera_0 = cv2.VideoCapture(0) # 代码运行的时候卡在这里!!
camera_1 = cv2.VideoCapture(1)cv2.namedWindow("left")
cv2.namedWindow("right")counter = 0
utc = time.time()
folder = "./SaveImage/" # 拍照文件目录, 先新建再运行,否则无法保存def shot(pos, frame):global counterpath = folder + pos + "_" + str(counter) + ".jpg"cv2.imwrite(path, frame)print("snapshot saved into: " + path)while True:ret_0, frame_0 = camera_0.read()ret_1, frame_1 = camera_1.read()left_frame = frame_0right_frame = frame_1cv2.imshow("left", left_frame)cv2.imshow("right", right_frame)now = time.time()if AUTO and now - utc >= INTERVAL:shot("left", left_frame)shot("right", right_frame)counter += 1utc = nowkey = cv2.waitKey(1)# press 's' in keyboard for capturing, 'q' for exit.if key == ord("q"):breakelif key == ord("s"):shot("left", left_frame)shot("right", right_frame)counter += 1camera_0.release()
camera_1.release()
cv2.destroyWindow("left")
cv2.destroyWindow("right")
这就比较违反常理,我和助教进行了一番讨论,无果。
最后解决的办法也比较奇怪,把卡住的代码修改为:
camera_0 = cv2.VideoCapture(0, cv2.CAP_DSHOW)
就可以了。(当然每一个 cv2.VideoCapture 都要改一下的)
这里我并不知道是怎么回事,我找到的一些资料说这个参数的作用是“不指定无法使用高分辨率摄像头”,那是不是有可能是因为课程提供的摄像头非常高清导致不设置不能使用(瞎猜,如有了解万望赐教)?因为我对 opencv 这个库基本上不了解,感觉这个大作业里面涉及到 opencv 的也就是拍个照,就不会深究了。
希望能帮助到一些和我一样在这里 stuck 的同学们~
(希望我的大作业能继续推进啊啊啊啊啊啊)
2022.12.14 补充
最近准备用新装的 Fedora 37 做开发平台了,于是把之前的代码 copy 到 Linux 上试了一下,发现 Linux 好像并不需要加这个参数……就还挺无语的 orz
python opencv 调用摄像头失败问题的解决 Windows相关推荐
- Python+opencv调用摄像头实现拍照并保存
Python+opencv调用摄像头实现拍照并保存 安装 OpenCV库 详细源码 注意事项 安装 OpenCV库 pip install opencv-python 详细源码 调用外接摄像头实现拍照 ...
- python+openCV调用摄像头拍摄和处理图片
在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...
- python opencv调用摄像头并追踪移动物体,浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估...
使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估. 效果如下(演示视频): 由于这是通过比较面部色素的变化评估脉搏所以光线.人体移动.不同角度.不同电脑摄像头等因素均会影响评估效 ...
- python+opencv调用摄像头视频图像处理
在做深度学习的时候,难免会用到摄像头采集图像.在这个就会用到python调用摄像头+opencv图像处理.视频图像的处理和单幅图片处理是一样的,视频就是很多单幅图像连续播放.每秒播放(采集)的图片数量 ...
- python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法
接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...
- python人脸识别截图_Python OpenCV调用摄像头检测人脸并截图
本文实例为大家分享了Python OpenCV调用摄像头检测人脸并截图的具体代码,供大家参考,具体内容如下 注意:需要在python中安装OpenCV库,同时需要下载OpenCV人脸识别模型haarc ...
- python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...
在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...
- Python进阶,使用 opencv 调用摄像头进行拍照
opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失 ...
- Python+OpenCV 调用手机摄像头并实现人脸识别
文章内容: 1.windows 环境下安装 OpenCV 机器视觉环境搭建: 2.基于通过 Python+OpenCV调用手机摄像头并实现人脸检测识别. 目录 1 实验环境 2 实验准备 2.1 下载 ...
最新文章
- 《预训练周刊》第13期:CPM-2:大规模经济高效的预训练语言模型、变换器作为编程语言...
- 柱状图、堆叠柱状图、瀑布图有什么区别?怎样用Python绘制?(附代码)
- Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
- nyoj13-Fibonacci数
- 即构科技金健忠:回顾20年音视频技术演进
- linux-进程的理解-进程的状态与生命周期
- project不显示里程碑标志_在Project中设置里程碑
- 组件注册-@Scope-设置组件作用域
- 删除共享登陆用户信息||无权访问共享资源解决方法
- python一款神器:ptpython 安装
- python第一个公开发行版_python之基础篇(一)
- 《Effective Python 2nd》——元类与属性
- 【python】多线程小结
- 挑战程序设计竞赛:Conscription
- Java SE 集合:Map接口
- 磁阻随机存储器(MRAM)市场现状研究分析与发展前景预测报告
- 计算机研究生论文期刊,经典计算机研究生小论文参考文献 计算机研究生小核心期刊参考文献哪里找...
- SLAM代码(SVO ros )
- keyshot怎么贴logo_KeyShot图文教程,三步教你如何使用添加有织纹的Logo
- 我是如何从功能测试成功转型自动化测试人员的?
热门文章
- 【Jetpack】学穿:LiveData →
- JEPF 软件快速开发平台
- 89个windows常用API调用
- css 选项进行分组,CSS 通用和分组选择器(十)
- 嵌入式输入系统应用编程
- html圣杯布局,HTML+CSS实现圣杯布局!
- CefInitialize崩溃 Cef白屏
- 微信的消息都要经过苹果服务器吗,为什么微信接收消息有延迟?其实是这5个原因,不知道就太可惜了...
- 和数荣获由国家授权的30项计算机软件著作权及1项发明专利
- 数据库中数据长度(理解)和几种int数据类型的区别