当前位置: 首页 > 知识库问答 >
问题:

错误(893)无法按索引、python和jupyter笔记本打开照相机

岳正阳
2023-03-14

守则:

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()

jupyter笔记本窗口中的错误:

17引发IOError(“无法打开网络摄像头”)

无法打开网络摄像头

我有两个设备,一个内置网络摄像头/dev/video0和一个USB网络摄像头/dev/video1

它们都以ls-ltrh/dev/video*

两个摄像头工作正常与guvcview

我使用jupyter笔记本运行上面的代码。

当我使用cap=cv2时。视频捕获(0)工作正常。但当我使用cap=cv2时。视频捕获(1)对于USB摄像头,我在终端中得到下一个错误:

[警告:0]全局/tmp/pip-req-build-ms668fyv/opencv/modules/videoio/src/cap_v4l。cpp(893)打开VIDEOIO(V4L2:/dev/video1):无法按索引打开相机

我试图给 /dev/video1所有权限,sudo chmod 777 /dev/video1.

我用的是linux mint。


共有1个答案

邹俊豪
2023-03-14

Linux在/dev/video中为每个网络摄像头创建2个文件。编号较低的(/dev/video0在您的示例中)用于捕获流,下面的(/dev/video1在您的示例中)包含一些关于相机的数据。

因此,当您尝试使用索引号0时,它工作正常,并使用视频捕获(0)打开相机。但是第二个摄像头呢?它缺失的原因可能有一些不同:

  • 当前的驱动程序系统不支持此功能(不是video4linux设备或旧的内核版本)

因此,这不是因为VideoCapture无法读取;这只是因为你试图用错误的索引打开它,这是相机的数据文件。

注意:我建议你也尝试VideoCapture(-1),这在某些情况下也很有趣。有时对于网络摄像头的子流,或者幸运的是打开一个有自己驱动程序的摄像头的子流。

 类似资料:
  • 我已经安装了Keras和TensorFlow GPU,但当我尝试将这些库导入Jupiter笔记本时,出现了一个错误 下面是使用conda list的库,下面是jupyter显示给我的错误: ModuleNotFoundError Traceback(最近的调用最后)在---- ModuleNotFoundError:没有名为keras的模块 我在蟒蛇环境中尝试这个: pip3安装keras 要求已

  • 我已经从Kaggle(视频游戏与评级)下载了一个数据库,但我不能用我的木星笔记本打开它。 我从这两行代码开始,但它给了我一个错误。。。 ()1中的UnicodeDecodeError回溯(最后一次调用)作为pd导入---- ~\Anaconda3\lib\site-包\熊猫\io\parsers.pyparser_f(filepath_or_buffer,sep,分隔符,标头,名称,index_c

  • 问题内容: 我正在研究Jupyter Notebook,并希望通过使用Google GPU使其运行更快。我已经进行了一些研究并找到了解决方案,但是它对我没有用。 解决方案是: “最简单的方法是使用Connect to Local Runtime, 然后选择硬件加速器作为GPU,如Google Colab Free GPU Tutorial中所示 。” 我确实设法将googe colab连接到jup

  • 在“指数”下面有一条波浪线。IDEA告诉我,它无法解析MVC视图“索引”。我已经把索引页和错误页放在templates目录下,当我运行它时,它仍然会显示一个白色的错误页。令人惊讶的是,当我使用@RestController而不是@Controller时,它可以工作(打开索引页),但当我想打开404页和500页时,它仍然会显示白色标签错误页。

  • C:\users\user\appdata\local\programs\python\python37\lib\site-packages\scipy__init__.py在154#中,这使得“from scipy import fft”返回scipy.fft,而不是np.fft 155 del fft-->156 from。导入fft C:\users\user\appdata\local\p

  • 我正在虚拟盒中运行Ubuntu14.04,最近安装了anaconda。我用conda安装了jupyter笔记本电脑。我已经按照我可以在网上找到的所有文档安装了笔记本电脑扩展,但它们无法加载,错误消息如下所示。第一个错误来自终端中运行的jupyter笔记本应用程序,第二个错误来自chrome java控制台。注意,我不能用这么多的超链接发布这个问题,所以我在错误消息中删除了“http”中的“p”。