【问题标题】:OpenCV cannot find webcam but Cheese canOpenCV 找不到网络摄像头,但 Cheese 可以
【发布时间】:2019-06-29 12:46:45
【问题描述】:

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

脚本 A:

import cv2
cap = cv2.VideoCapture(0)

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

    cv2.imshow('frame', rgb) 

给我这个错误:

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:

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)

给我这个错误:

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。

【问题讨论】:

标签: python python-3.x opencv usb webcam


【解决方案1】:

我会检查 OpenCV 的安装,因为脚本 A 对我来说工作得很好,在相同版本的库和类似的操作系统 (Mint 19) 上。

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)

安装通过

pip install opencv-python

以在第 3 方模块 (https://github.com/opencv/opencv/issues/8471) 中存在“问题” 而闻名。

尝试从源代码构建和安装,这样界面模块也将被构建和链接(V4L、FFMpeg 等)。

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

    在这两种情况下,相机都已激活但现在已被占用。所以现在,在主“while”循环中尝试放置

    while(True):
          ret_val, img = cap.read()
          if(ret_val==False)
                cap.open(0)
                continue
          ...
    

    【讨论】:

      猜你喜欢
      • 2011-12-21
      • 2012-06-19
      • 1970-01-01
      • 2012-06-12
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 2021-07-02
      相关资源
      最近更新 更多