最后添加cv2.waitKey(0)
。


0

0

我遇到了同样的问题。我试图从IDLE中读取图像,并尝试使用cv2.imshow()
显示它,但显示窗口冻结,并显示pythonw.exe
在尝试关闭窗口时没有响应。
下面的帖子提供了可能发生这种情况的可能解释
“ 基本上,不要从IDLE中执行此操作。编写脚本并从shell或脚本(如果在Windows中)直接运行它,方法是使用.pyw扩展名命名并双击它。显然,IDLE自己的事件之间存在冲突循环以及来自GUI工具包的循环。 ”
当我在脚本中使用imshow()
并执行它而不是直接在IDLE上运行它时,它就起作用了。
0

我在这里找到了最适合我的答案: http : //txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html
如果您运行交互式ipython会话,并希望使用highgui窗口,请首先执行cv2.startWindowThread()。
详细信息:HighGUI是简化的界面,用于显示来自OpenCV代码的图像和视频。它应该很简单:
import cv2
img = cv2.imread("image.jpg")
cv2.startWindowThread()
cv2.namedWindow("preview")
cv2.imshow("preview", img)
0

您必须在cv2.imshow("window",img)
之后使用cv2.waitKey(0)
cv2.imshow("window",img)
。只有这样,它才能起作用。
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)
0

对我来说,数量大于0的waitKey()有效
cv2.waitKey(1)
0

如果您在Python控制台中运行,请执行以下操作:
img = cv2.imread("yourimage.jpg")
cv2.imshow("img", img); cv2.waitKey(0); cv2.destroyAllWindows()
然后,如果在图像上按Enter键 ,它将成功关闭图像,您可以继续运行其他命令。
0

如果您没有使它起作用,那么最好放
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)
成一个文件并运行它。
0

imshow()
仅与waitKey()
:
import cv2
img = cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow', img)
cv2.waitKey()
(更新窗口所需的整个消息循环都隐藏在其中。)
0

您在此线程中的某处拥有了所有必要的部分:
if cv2.waitKey(): cv2.destroyAllWindows()
在IDLE中对我来说效果很好。
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
0
我正在使用opencv 2.4.2,python 2.7以下简单代码创建了一个正确名称的窗口,但其内容仅为空白,并且不显示图像:
有谁知道这个问题吗?