【问题标题】:cv2.destroyWindow() does not work as expectedcv2.destroyWindow() 没有按预期工作
【发布时间】:2016-07-30 10:18:19
【问题描述】:

我刚开始用 Python 为 Raspberry Pi 3 学习 OpenCV。 我为namedWindow() 编写了一个简单的代码。问题是 destroyWindow() 不能按我的预期工作。 “测试”窗口仍然存在。下面的代码有什么问题?

import cv2
import sys

if __name__ == '__main__':
    cv2.namedWindow("TEST")
    while True:
        key = cv2.waitKey(5)
        if key == 27:
            print "ESC pressed..."
            cv2.destroyWindow("TEST")
            break
    sys.exit()

【问题讨论】:

  • 您可能想查看this link
  • 将destroyWindow("TEST")移出循环。
  • 当我上次使用destroyWindow 时,我不仅要在destroyWindow 之前和之后放置几个不同的waitKey 调用(前面两个,后面五个),我还在我创建namedWindow 之前,必须启动cvWindowThread。然后我在结束时调用了std::terminate(),因为线程没有正确关闭(请注意,那是在 C++ 中,python 可能会更好地处理线程)。

标签: python-2.7 opencv raspberry-pi


【解决方案1】:

就 waitKey 而言,这通常对我有用:

if cv2.waitKey(1) & 0xFF == 27:
    break
cv2.destroyWindow("TEST")

这是按位输入,带有 waitkey 输入,11111111 应该等于键的 UTF-8 值。我在This Loop 上对此进行了测试。希望这可以帮助。

【讨论】:

    猜你喜欢
    • 2021-09-02
    • 2021-10-19
    • 2020-03-18
    • 2012-06-14
    • 2014-11-15
    • 1970-01-01
    • 2012-07-02
    • 2011-09-07
    • 2013-03-03
    相关资源
    最近更新 更多