【问题标题】:How to update imshow() window for Python OpenCV CV2如何更新 Python OpenCV CV2 的 imshow() 窗口
【发布时间】:2015-01-22 22:11:43
【问题描述】:

我当前的程序将向用户输出图像,并根据用户输入,根据需要重新调整图像。

长话短说,我正在尝试在图像文件中查找圆形对象。我将使用霍夫圆变换。但是,因为我在图像中的许多圆圈都不是“完美的圆圈”,所以我正在做一个“猜测”圆圈半径的算法。但是,我希望允许用户根据需要重新调整半径。

有没有办法让用户输入,然后根据用户输入,在 imshow() 中重新调整窗口?现在,在我使用 cv2.waitKey(0) 之前,imshow() 拒绝显示实际窗口,此时我无法请求用户输入,直到窗口被销毁。

【问题讨论】:

    标签: python python-2.7 opencv


    【解决方案1】:

    您可以反复调用imshow 而不会破坏它。是的,你可能需要waitKey,只是不要用 0 调用它,否则它会无限期地等待。用 1 调用它只等待 1 毫秒并确保图像重绘。尝试类似:

    while True:
        cv2.imshow('image', img)
        cv2.waitKey(1)
        radius = input('Input radius')
        # recalculate image with new radius here...
    

    【讨论】:

    • 我使用 C++ 并在循环更新后刷新图像。它画得不错,但是当尝试关闭窗口时,它会显示数百万个以前的窗口要关闭
    • 您是否打开具有相同窗口名称和来自同一线程@GiorgiGvimradze 的图像?
    • 已解决:是因为实际绘制(画圆动画)没有完成,但我以为已经完成了。原因:环有 360 度,但它们是弧度。实际上,我在很长一段时间内都在绕圈圈。
    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多