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

时间:2014-11-25 02:16:13

标签: python python-2.7 opencv

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

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

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

1 个答案:

答案 0 :(得分:10)

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

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