我正在使用opencv 2.4.2,python 2.7下面的简单代码创建了一个正确名称的窗口,但其内容为空白,并且不显示图像:
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
有谁知道这个问题吗?
我正在使用opencv 2.4.2,python 2.7下面的简单代码创建了一个正确名称的窗口,但其内容为空白,并且不显示图像:
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
有谁知道这个问题吗?
Answers:
imshow()
仅适用于waitKey()
:
import cv2
img = cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow', img)
cv2.waitKey()
(更新窗口所需的整个消息循环都隐藏在其中。)
print img
打印正确的numpy数组,而不是NoneType
对象。
我在这里找到了最适合我的答案: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.waitKey(0)
在之后使用cv2.imshow("window",img)
。只有这样,它才能起作用。
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)
我遇到了同样的问题。我试图从IDLE中读取图像,并尝试使用显示它cv2.imshow()
,但是显示窗口冻结,并且显示pythonw.exe
在尝试关闭窗口时无响应。
下面的帖子给出了可能发生这种情况的可能解释
“ 基本上,不要从IDLE中执行此操作。编写脚本并从shell或脚本(如果在Windows中)直接运行它,方法是使用.pyw扩展名命名并双击它。显然,IDLE自己的事件之间存在冲突循环和来自GUI工具包的循环。 ”
当我imshow()
在脚本中使用并执行它,而不是直接在IDLE上运行它时,它就起作用了。
之后不需要任何其他方法waitKey(0)
(回复上面的代码)
import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
cv2.waitKey(0)
出现窗口->单击窗口,然后单击Enter。窗口将关闭。
如果选择使用“ cv2.waitKey(0)”,请确保已编写“ cv2.waitKey(0)”而不是“ cv2.waitkey(0)”,因为小写的“ k”也可能冻结程序。
错误:函数imshow中的(-215)size.width> 0 && size.height> 0
因为找不到图像,所以产生此错误。因此,这不是imshow函数的错误。
我遇到了相同的215错误,可以通过提供图像的完整路径来解决该错误,例如在C:\ Folder1 \ Folder2 \ filename.ext中