如何让 VideoCapture 返回错误而不是警告?

增强现实

在 Linux 上尝试实现基本的 try/except 语句以从相机获取帧时,我注意到 OpenCV 在相机丢失或设备索引错误时不会引发错误;相反,它会打印警告。我怎么能抓住这个?

例子:

import cv2

def foo(camera_index):
    try:
        cap = cv2.VideoCapture(camera_index)
    except Exception:
        print("Couldn't open camera at {}".format(camera_index))

在 /dev/video/0 使用工作相机运行 foo(1) 将打印:

WARN:0] global /tmp/pip-req-build-kne9u3r2/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video1): can't open camera by index

我的 except 是无用的,因为 cv2 永远不会引发正确的异常(但消息文本听起来像一个错误)。

瓦西里卡拉舍夫

您无法捕捉到这些警告,但您可以VideoCapture使用isOpened()方法检查对象是否已成功创建

举个例子:

cap = cv2.VideoCapture(camera_index)
if not cap.isOpened():
  raise Exception("Couldn't open camera {}".format(camera_index))

在创建VideoCapture对象后执行此检查是一种常见模式;另一个例子这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

CV :: VideoCapture :: open()中的错误?

如何:带文件的Android OpenCV VideoCapture

VideoCapture.read()返回过去的图像

如何使用keras从OpenCV的VideoCapture预测预训练模型?

如何在VideoCapture对象(C ++)中寻找某个frame_no?

从接口名称而不是摄像机编号创建openCV VideoCapture

USB摄像头:OpenCV VideoCapture返回部分帧

附加警告消息返回错误而不是警告

如何使用警告而不是错误来扩展airbnb夹板?

如何配置PHPUnit将dataprovider错误视为失败而不是警告?

如何从 Reactjs 中的 proptypes 抛出错误而不是警告?

如何将AppEnginePlatformWarning记录为警告而不是错误

如何在SwiftLint上强制错误而不是警告?

OpenCV:如何读取自动检测的api和videocapture的格式

使用“ cv2.VideoCapture”(Python OpenCV)时如何正确终止“ multiprocessing.Process”?

如何从python中的cv2.VideoCapture获取每一帧作为图像

如何在 Python 中使用參數(第三個)參數調用 OpenCV VideoCapture()

如何将视频文件从S3存储桶传递到opencv VideoCapture?

无论如何将videoCapture(0)(来自python文件)放在C#用户界面中

如何返回nil而不是缺少的哈希键的错误?

如何将错误作为值而不是引用返回

吉特 如何添加不是返回错误的所有文件?

如果strpos不是完全错误,如何返回true?

TypeError:元组索引必须是整数或切片,而不是裁剪从 VideoCapture 获取的 OpenCV 图像时的元组

OpenCV的VideoCapture :: get(CV_CAP_PROP_FORMAT)返回的数字是什么意思?

VideoCapture返回一个空帧,但是将其保存到磁盘后是否正确?

python cv2.Videocapture()不起作用,cap.isOpened()返回false

OpenCV (3.3.0) 在 VideoCapture with Video 上返回失败,但适用于网络摄像头 [OS X]

Python OpenCV-contrib v3.4.3 VideoCapture.read()返回false