【问题标题】:opencv cv2.destroyAllWindows() doesnt respondopencv cv2.destroyAllWindows() 没有响应
【发布时间】:2014-05-06 01:43:44
【问题描述】:

我有 64 位的 ubuntu 系统。我在idel中运行代码。 我正面临 opencv 挂起问题,图像显示但我必须强制终止图像窗口。所以参考了这个帖子——Using other keys for the waitKey() function of opencv

import cv2
img = cv2.imread('sof.jpg') # load a dummy image
while(1):
    cv2.imshow('img',img)
    k = cv2.waitKey(3000) & 0xff
    if k==32:    # SpaceBar key to stop
        break
    elif k==-1:  # normally -1 returned,so don't print it
        continue
    else:
        print k # else print its value

它的不工作图像仍然挂起,我必须手动关闭它。

【问题讨论】:

  • 您的代码对我来说很好用。您可以从命令行 shell 而不是从空闲状态尝试它吗?很久以前我遇到过空闲和 GUI(我认为是 tkinter)的问题。

标签: python opencv


【解决方案1】:

试试:

k = cv2.waitKey(3000) & 0xff

【讨论】:

  • 你能解释一下吗?
  • 屏蔽掉任何你到达那里的“ascii”部分(扫描键?),所以你可以检查 k==27 或类似的
  • 它不工作。我不得不再次重新启动空闲的 shell 来杀死图像
【解决方案2】:

添加 cv2.waitkey(0) 和 cv2.destroyallwindows() 但如果你使用过 python 笔记本,那么在基于 Unix 的系统中运行 opencv 程序会出现问题。它会导致系统冻结,因此每次尝试执行代码时都需要重新启动内核。

我有一种替代方法可以防止您的系统冻结

步骤:

  1. -从 python notebooks 复制代码并创建新的 filename.py 并粘贴它
    • 打开终端
    • cd 路径/到/文件
    • 源激活 VirtualEnvironment
    • python 文件名.py

这将直接从终端运行代码。 希望这对您有所帮助。 示例链接:https://youtu.be/8O-FW4Wm10s

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 2020-03-14
    • 2021-01-25
    • 2021-03-26
    • 2021-03-30
    • 1970-01-01
    • 2023-01-05
    • 2022-01-16
    相关资源
    最近更新 更多