Linux Mint下OpenCV经Jupyter打开索引1的USB摄像头报893无法打开错误
OpenCV 无法打开外接USB摄像头(/dev/video1)问题记录
已确认的设备与验证前提
- 运行系统为Linux Mint,设备共搭载2个摄像头:内置摄像头对应设备路径
/dev/video0,USB外接摄像头对应设备路径/dev/video1 - 基础硬件校验通过:
- 执行
ls -ltrh /dev/video*命令可正常列出两个摄像头设备 - 使用
guvcview工具可正常调用两个摄像头完成画面采集
- 执行
- 代码运行表现:
- 使用
cv2.VideoCapture(0)调用内置摄像头时,程序可正常运行 - 仅当使用
cv2.VideoCapture(1)调用USB外接摄像头时,触发OpenCV警告:[ WARN:0] global /tmp/pip-req-build-ms668fyv/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video1): can't open camera by index
- 使用
- 已尝试的无效修复操作:执行
sudo chmod 777 /dev/video1为USB摄像头设备赋予全部操作权限,问题未得到解决
触发异常的测试代码
import cv2 cap= cv2.VideoCapture(1) if not cap.isOpened(): raise IOError("Cannot open webcam") cntr =0 while True: ret,frame = cap.read() cntr= cntr+1; if ((cntr%30)==0): cv2.putText(frame,'cool' ,(50,50), cv2.FONT_HERSHEY_SIMPLEX, 0.7,(0,0,255),2) cv2.imshow('Text Detection Tutorial',frame) if cv2.waitKey(2) & 0xff == ord('q'): break cap.release() cv2.destroyAllWindows()
程序抛出的运行时错误
17 raise IOError("Cannot open webcam")
OSError: Cannot open webcam
待解决问题
在当前Jupyter Notebook运行环境下,如何修复OpenCV通过设备索引打开外接USB摄像头的接口兼容/访问异常,让程序可正常采集/dev/video1的摄像头画面。
内容的提问来源于stack exchange,提问作者Ron Bergen
相关产品推荐
相关产品推荐

