【问题标题】:Why does the cv2.imshow() does not render without cv2.waitkey()?为什么没有 cv2.waitkey() cv2.imshow() 不渲染?
【发布时间】:2017-12-04 21:36:13
【问题描述】:

如果没有 cv2.waitkey() 方法,cv2.imshow() 会显示黑色窗口。为什么没有等待就无法正确进行渲染?

cap = cv2.VideoCapture(video_path)
while cap.isOpened():
    ret,frame = cap.read()
    cv2.imshow('window-name',frame)
    # without the following cv2.waitkey(1) statement the cv2.imshow() displays a blank window
    if cv2.waitKey(1) & 0xFF == ord('q'): # wait for 1 millisecond
        break
    continue

【问题讨论】:

    标签: python-3.x opencv


    【解决方案1】:

    cv2.imshow() 的文档中,NOTE 部分提到窗口显示的时间由cv2.waitKey() 中的参数指示的时间量。 0 的参数表示永远等待,因此除非您处理按键,否则图像将永远显示。

    在调试、显示中间图像等时,控制窗口需要显示的持续时间是一个有用的方面。

    cv2.waitKey() 的文档中,NOTE 部分提到'此函数是 HighGUI 中唯一可以获取和处理事件的方法,因此需要定期调用它以进行正常的事件处理,除非在环境中使用 HighGUI负责事件处理。'

    您可以注意到,如果没有cv2.waitKey(),如果您将鼠标悬停在显示的窗口上,则会显示带有滚轮的“忙碌”光标,表示该窗口正在忙碌。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2016-05-24
      • 2023-02-01
      • 2018-11-13
      • 1970-01-01
      • 2016-06-12
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多