我当前的程序会将图像输出给用户,并根据用户输入,根据需要重新调整图像。
长话短说,我试图在图像文件中找到圆形对象。我将使用霍夫圆变换。但是,因为图像中的许多圆圈都不是“完美圆圈”,所以我正在做一个“猜测”圆圈半径的算法。但是,我希望允许用户根据需要重新调整半径。
有没有办法让用户输入,然后根据用户输入,重新调整imshow()中的窗口?现在,imshow()拒绝显示实际窗口,直到我使用cv2.waitKey(0),此时我不能要求用户输入,直到窗口被销毁。
答案 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...