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

问题描述:

我当前的程序会向用户输出一个图像,并根据用户输入,根据需要重新调整图像。如何更新Python OpenCV的imshow()窗口CV2

长话短说,我试图找到图像文件中的圆形对象。我将使用Hough Circle Transform。但是,由于图像中的许多圆圈不是“完美的圆圈”,我正在做一个“猜测”圆圈半径的算法。但是,我想让用户根据需要重新调整半径。

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

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

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