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

Alw*_*Hui 6 python opencv python-2.7

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

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

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

101*_*101 12

你可以imshow反复打电话而不会破坏它.是的,你可能需要waitKey,只是不要用0调用它,否则它将无限期地等待.用1来调用它只等待1ms并确保重绘图像.尝试类似的东西:

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