当前位置: 首页 > 知识库问答 >
问题:

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

宓季同
2023-03-14

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

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

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

共有1个答案

慕容耘豪
2023-03-14

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

while True:
    cv2.imshow('image', img)
    cv2.waitKey(1)
    radius = input('Input radius')
    # recalculate image with new radius here...
 类似资料:
  • 问题内容: 我正在研究一些计算机视觉算法,我想展示一个numpy数组在每个步骤中如何变化。 现在有效的是,如果我在代码末尾有一个简单的代码,则该窗口将显示并显示最终图像。 但是,我想做的是在每次迭代中更改图像时更新并显示imshow窗口。 因此,例如,我想这样做: 问题在于,只有完成整个计算后,Matplotlib窗口才会被激活。 我已经尝试了原生matplotlib和pyplot,但是结果是一样

  • 所以我的问题是:我通常把我的笔记本电脑连接到外部屏幕上,一切正常,直到我需要把我的笔记本电脑带到大学去做进度报告。当我的笔记本电脑没有连接到外部屏幕时,imshow显示的窗口在底部被切断,如图所示。 以前有人遇到过这个问题吗?如果有,你能分享如何解决这个问题吗?我的笔记本电脑使用windows 10,python 3.6.4和opencv 3.3.0。 我当前的代码有点长,所以我将在这里给出流程:

  • 我试图更新数据在matplotlib imshow窗口内的Tkinter gui,我的代码示例如下: 如您所见,我使用imshow()加载图像,然后尝试使用set_data()更新图像的数据,然后希望使用root.update()更新gui的根窗口。执行时,打印“旋转按钮按下......”行被执行,但其余行似乎没有执行。我需要如何将图像句柄传递给旋转函数,还是返回旋转的图像?

  • 对于我的图像处理算法,我使用的是python/OpenCV。我的算法的输出将在同一个窗口中一遍又一遍地更新。

  • 问题内容: 我正在有限的时间里进行学校项目,导致代码混乱和混乱。我正在尝试打开两个jFrame,一个显示聊天界面,另一个显示图像。从第一个窗口调用时,我想调用一个方法,该方法多次更改第二个窗口上的图像,并且之间有一些延迟。但是,图像不会改变。 我认为我的问题是由于在文本窗口中使用了一些示例代码,并试图合并我自己的修改而没有完全理解前者。在尝试查找此问题时,我仅发现人们根据计时器和in来更新其jFr

  • 问题内容: 我正在为Java游戏制作自己的自定义服务器软件(游戏和原始服务器软件都是用Java编写的)。没有可用的协议文档,因此我必须使用Wireshark读取数据包。 客户端连接时,服务器将以Gzip格式将其发送到级别文件。在发送大约94个数据包时,我的服务器通过ArrayIndexOutOfBoundsException使客户端崩溃。根据原始服务器的捕获文件,它大约在该点发送一个TCP窗口更新