【发布时间】:2020-10-16 16:42:11
【问题描述】:
当尝试在 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
然后我的异常就没有用了,因为 cv2 永远不会引发适当的异常(但消息文本听起来像是错误)。
【问题讨论】:
标签: python opencv error-handling video-capture