如何更新 Python OpenCV CV2 的 imshow() 窗口

问题描述 投票:0回答:1

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

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

是否有某种方法可以要求用户输入,然后根据用户输入重新调整 imshow() 中的窗口?现在,imshow() 拒绝显示实际窗口,直到我使用 cv2.waitKey(0),此时我无法要求用户输入,直到窗口被销毁。

python python-2.7 opencv
1个回答
27
投票

您可以反复调用

imshow
而不会破坏它。是的,您可能需要
waitKey
,只是不要用 0 调用它,否则它将无限期地等待。用 1(毫秒)调用它并确保图像重绘。

尝试类似:

while True:
    cv2.imshow('image', img)
    cv2.waitKey(1)
    radius = input('Input radius')
    # recalculate image with new radius here...
© www.soinside.com 2019 - 2024. All rights reserved.