在python中使用OpenCV时视频没有刷新

时间:2015-10-06 12:49:13

标签: python opencv

我在python中使用openCV模块,用于从笔记本电脑的网络摄像头捕获视频。我有一些不寻常的行为。以下是我正在使用的代码

class bnw_video() :

    def __init__(self) :

        self.cap = cv2.VideoCapture(0)
        self.cap.set(3,320)
        self.cap.set(4,240)
        self.start_video()

    def start_video(self) :

        while(True) :
            ret,frame = self.cap.read(0)
            cv2.imshow('frame',frame)
            time.sleep(0)

bnw_video()

我使用上面的代码显示网络摄像头主动捕获的视频。当time.sleep值为0时,视频将完美显示。但是如果time.sleep值为0.1,则视频只显示一帧,然后停止。

我不明白为什么会这样做。

1 个答案:

答案 0 :(得分:0)

您应该使用cv2.waitKey(delay_in_ms),而不是time.sleep(...)

来自OpenCV doc

  

此函数是HighGUI中唯一可以获取和处理事件的方法,因此需要定期调用它以进行正常事件处理,除非在负责事件处理的环境中使用HighGUI。

如果您不打电话给waitKey,则不会刷新Windows内容(由imshow创建)。