cv2.imshow命令在opencv-python中无法正常工作
image-processing
opencv
python
5
0

我正在使用opencv 2.4.2,python 2.7以下简单代码创建了一个正确名称的窗口,但其内容仅为空白,并且不显示图像:

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)

有谁知道这个问题吗?

参考资料:
Stack Overflow
收藏
评论
共 9 个回答
高赞 时间 活跃

最后添加cv2.waitKey(0)

收藏
评论

我遇到了同样的问题。我试图从IDLE中读取图像,并尝试使用cv2.imshow()显示它,但显示窗口冻结,并显示pythonw.exe在尝试关闭窗口时没有响应。

下面的帖子提供了可能发生这种情况的可能解释

pythonw.exe没有响应

基本上,不要从IDLE中执行此操作。编写脚本并从shell或脚本(如果在Windows中)直接运行它,方法是使用.pyw扩展名命名并双击它。显然,IDLE自己的事件之间存在冲突循环以及来自GUI工具包的循环。

当我在脚本中使用imshow()并执行它而不是直接在IDLE上运行它时,它就起作用了。

收藏
评论

我在这里找到了最适合我的答案: 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)
收藏
评论

您必须在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的waitKey()有效

    cv2.waitKey(1)
收藏
评论

如果您在Python控制台中运行,请执行以下操作:

img = cv2.imread("yourimage.jpg")

cv2.imshow("img", img); cv2.waitKey(0); cv2.destroyAllWindows()

然后,如果在图像上按Enter键 ,它将成功关闭图像,您可以继续运行其他命令。

收藏
评论

如果您没有使它起作用,那么最好放

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)

成一个文件并运行它。

收藏
评论

imshow()仅与waitKey()

import cv2
img = cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow', img)
cv2.waitKey()

(更新窗口所需的整个消息循环都隐藏在其中。)

收藏
评论

您在此线程中的某处拥有了所有必要的部分:

if cv2.waitKey(): cv2.destroyAllWindows()

在IDLE中对我来说效果很好。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号