首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV找不到网络摄像头,但Cheese可以

OpenCV找不到网络摄像头,但Cheese可以
EN

Stack Overflow用户
提问于 2019-02-06 00:25:48
回答 3查看 3K关注 0票数 3

我的opencv安装最近由于我不确定的原因而停止工作。我有两个脚本,它们都会给出不同的错误:

脚本A:

代码语言:javascript
复制
import cv2
cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

    cv2.imshow('frame', rgb) 

给我这个错误:

代码语言:javascript
复制
select timeout
VIDIOC_DQBUF: Resource temporarily unavailable
Traceback (most recent call last):
  File "camera.py", line 19, in <module>
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)
cv2.error: OpenCV(4.0.1-dev) /home/me/Packages/opencv/modules/imgproc/src/color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
import cv2
cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

    cv2.imshow('frame', rgb)

和脚本B:

代码语言:javascript
复制
import cv2

def show_webcam(mirror=False):
    cam = cv2.VideoCapture(0)
    while True:
        ret_val, img = cam.read()
        if mirror: 
            img = cv2.flip(img, 1)
        cv2.imshow('my webcam', img)
        if cv2.waitKey(1) == 27: 
            break  # esc to quit
    cv2.destroyAllWindows()

def main():
    show_webcam(mirror=True)

给我这个错误:

代码语言:javascript
复制
select timeout
VIDIOC_DQBUF: Resource temporarily unavailable
Traceback (most recent call last):
  File "camera3.py", line 26, in <module>
    main()
  File "camera3.py", line 22, in main
    show_webcam(mirror=True)
  File "camera3.py", line 15, in show_webcam
    cv2.imshow('my webcam', img)
cv2.error: OpenCV(4.0.1-dev) /home/david/Packages/opencv/modules/highgui/src/window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow' 

主要的问题是:我以前用过OpenCV,当opencv找不到摄像头时,这两个错误通常都会发生。但是我确实有一个网络摄像头,当我打开Cheese webcam Booth时,它工作得很好,拍照也很好。有没有办法在不重新安装OpenCV的情况下修复它?

我在Ubuntu 18.04上

EN

回答 3

Stack Overflow用户

发布于 2019-02-06 06:22:13

我会检查OpenCV的安装,因为脚本A在相同版本的库和类似的操作系统(Mint19)上运行得很好。

代码语言:javascript
复制
import cv2
    cap = cv2.VideoCapture(0)

    while(True):
        ret, frame = cap.read()
        rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

        cv2.imshow('frame', rgb) 
        cv2.waitKey(10)

安装通过

代码语言:javascript
复制
pip install opencv-python

以与第三方模块(https://github.com/opencv/opencv/issues/8471)有关的“问题”而闻名。

尝试从源代码构建和安装,这样就可以构建和链接接口模块(V4L、FFMpeg等)。

票数 0
EN

Stack Overflow用户

发布于 2019-08-10 18:27:22

两种可能的解决方案: 1)设置正确的fps;2)升级到较新版本的opencv for python。

票数 0
EN

Stack Overflow用户

发布于 2020-08-17 20:31:26

在这两种情况下,相机都处于激活状态,但现在处于占用状态。所以现在,在主"while“循环中,尝试将

代码语言:javascript
复制
while(True):
      ret_val, img = cap.read()
      if(ret_val==False)
            cap.open(0)
            continue
      ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54538823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档