如何更新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...