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

2024-06-17 11:57:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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) 

给我这个错误:

^{pr2}$

脚本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网络摄像头时,它工作正常,拍照也很好。有没有办法在不重新安装OpenCV的情况下修复它?在

我在Ubuntu 18.04上。在


Tags: in脚本trueimgmainmirrorshow错误
2条回答

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

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)

通过安装

^{pr2}$

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

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

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

相关问题 更多 >