我正在循环中运行一些Python脚本(但速度不是很快)
例如:
import time
import cv2
stream = cv2.VideoCapture(0)
while True:
ret,frame = stream.read()
cv2.imshow("Frame",frame)
cv2.waitKey(1)
time.sleep(10)
执行几分钟后,我发现以下错误:
E1205 11:19:12.803174714 32302 backup_poller.cc:132] Run client channel backup poller: {"created":"@1607177952.802346313","description":"pollset_work","file":"src/core/lib/iomgr/ev_epollex_linux.cc","file_line":324,"referenced_errors":[{"created":"@1607177952.802226759","description":"Bad file descriptor","errno":9,"file":"src/core/lib/iomgr/ev_epollex_linux.cc","file_line":954,"os_error":"Bad file descriptor","syscall":"epoll_wait"}]}
有人知道这是什么吗?我查看了谷歌,但没有找到任何好的解决方案
创建视频捕获后,始终测试
stream.isOpened()
。如果这是假的,你就不能对视频做任何事情在
ret, frame = stream.read()
之后,始终测试ret是否为真。如果为False,则视频已结束,您需要结束循环我还建议不要睡10秒钟。在此期间,GUI事件循环将不会运行(因为您没有运行
waitKey
),这会使imshow窗口无响应,并且您的操作系统可能会决定终止该进程改为使用waitKey(10000)。检查waitKey()是否等待了整个时间间隔。由于关键事件,它可能会提前返回。您可以接受这一点,也可以在剩余时间内重复waitKey
不管你读不读,相机都会以固定的间隔产生画面。如果你不读,他们就会排队。司机不会喜欢这样,可能会决定向你抛出错误
相关问题 更多 >
编程相关推荐