python - OpenCV 找不到网络摄像头,但 Cheese 可以
问题描述
我的 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 上。
解决方案
两种可能的解决方案:1)设置正确的fps;2)升级到更新版本的opencv for python。
推荐阅读
- python - 如何在 python 中使用 SQLAlchemy 修复与 db2 的连接?
- python - 如何将模型 ID 从 url 传递到基于类的视图?
- r - sf 到 data.frame:为什么在 as.data.frame 之前需要 as_Spatial
- python-3.x - 使用回调函数过滤 Dash Table
- c# - EF6 中获取相关记录信息的通用方法
- swiftui - SwiftUI:具有不同 ToolbarItem 位置的视图导致应用程序崩溃
- kubernetes - 使用 Kustomize 批量编辑 Kubernetes 注释,无需重启 pod
- node.js - node.js - 带有 JavaScript 的 html 的 res.WriteHead() ContentType
- amazon-web-services - 是否可以使用公共权限扫描 AWS S3 存储桶中的所有文件夹和文件?
- flutter - 如何从firebase auth获取令牌