Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV imshow没有响应_Opencv_Pycharm_Operating System_Spyder_Python 3.8 - Fatal编程技术网

OpenCV imshow没有响应

OpenCV imshow没有响应,opencv,pycharm,operating-system,spyder,python-3.8,Opencv,Pycharm,Operating System,Spyder,Python 3.8,我有下面的小test.py代码 import cv2 image = cv2.imread("sample.png") print(image) #not None cv2.imshow("Photo", image) cv2.waitKey() cv2.destroyAllWindows() 我正在安装opencv的Pycharm上运行虚拟环境。 Python版本是3.8.6 但是,当我在Pycharm终端中运行python test.py或py

我有下面的小test.py代码

import cv2

image = cv2.imread("sample.png")
print(image) #not None

cv2.imshow("Photo", image)

cv2.waitKey()
cv2.destroyAllWindows()
我正在安装opencv的Pycharm上运行虚拟环境。 Python版本是3.8.6

但是,当我在Pycharm终端中运行
python test.py
python3 test.py
时,会弹出python启动器,但它没有响应,也没有显示任何照片

这就是它所显示的

有没有人经历过同样的问题


更新:我想这是Pycharm的,我在Anadconda上用Spyder再次尝试过,效果很好。窗口出现。

编辑:我怀疑Highgui模块的依赖项缺失或损坏-GTK、QT;或者甚至OpenCV不是在他们的支持下构建的

你能写一行吗:

print(cv2.getBuildInformation())

在您的代码中,查看输出的GUI部分

对于Windows,它是:

GUI: 
    Win32 UI:                    YES
    OpenGL support:              YES (opengl32 glu32)
    VTK support:                 NO
请参阅下面的评论和链接:


你说它不是“无”,但你有没有尝试使用照片的绝对路径,它是否在PyCharm搜索的同一文件夹中

当您在映像目录中时,是否尝试从系统控制台shell运行它

编辑:另外,如果它似乎加载了图像,但没有显示它,请尝试保存它:cv2.imwrite(“save.png”,image)

另外,如果在cv2.imshow()之后添加print(),是否显示输出

顺便说一句,问题的另一个可能来源可能是创建新项目时的虚拟环境设置等:

如果查看,
等待键
等待按键

但是,您没有在
waitKey
中指定任何延迟

延迟以毫秒为单位。0是表示“永远”的特殊值

因此,如果您指定
waitKey(0)
,图像将永远显示(直到您按下按钮)

代码:


导入cv2
image=cv2.imread(“sample.png”)
打印(图像)#非无
cv2.imshow(“照片”,图像)
cv2.等待键(0)#延迟0
cv2.destroyAllWindows()

您是否尝试使用照片的绝对路径,它是否位于PyCharm搜索的同一文件夹中?是的。当您在映像目录中时,是否尝试从系统控制台shell运行它?是的,我也这么做了,但同样的问题仍然存在。如果它似乎加载了图像,但没有显示,请尝试保存它:cv2.imwrite(“save.png”,image)->是的,它将图像保存到新图像中。如果在cv2.imshow()之后添加print(),是否显示输出?->不,它不会打印。在尝试启动python launcher时,程序似乎挂起,但它没有重新发送。如果它在imshow之后没有打印,那么可能cv2.imshow挂起,这让我怀疑HighGui库,可能缺少一些依赖项?Qt?OpenCV在构建过程中有许多选项。您是否尝试过其他示例程序,它们只是省略了imshow/GUI并保存了输出?例如:image=cv2.cvtColor(image,cv2.COLOR_bgr2 gray)sobelX=cv2.Sobel(image,cv2.CV_64F,1,0)Sobel=cv2.Sobel(image,cv2.CV_64F,0,1)sobelX=np.uint8(np.absolute(sobelX))sobelY=np.uint8(np.absolute(sobelY))sobelCombined=cv2.bitwise_或(sobelX,sobelX)cv2.line(image,(0,0)、(40,40),255,3)Highgui可以基于GTK(默认值为ON)或Qt,具体取决于编译期间的选项:“GUI后端(highgui模块)OpenCV依赖于各种GUI库进行窗口绘制。Linux GTK上带有_GTK的默认平台描述选项是Linux和类似Unix的OS es中的常见工具包。默认情况下,如果找到,将使用版本3。可以使用带有_GTK_2_X选项强制使用版本2。带有_QT的非跨平台QT是一个跨平台GUI框架。”顺便说一句,你说的“Python启动器”是什么意思?Python可执行文件?如果成功读取并保存了图像等,那么Python解释器就会启动并运行。我认为“没有响应”是典型的GUI问题。啊,现在你说HighGui,我会开始研究它。谢谢你!谢谢啊,我也试过了,但不认为它有效。你试过不同的参数吗?除了0?是的,如果在imshow后不打印,我试过0和1If(见下面的讨论),它似乎没有到达waitKey。我确实使用Pycharm社区版运行了该程序,它没有问题。cv2.waitKey()的行为类似于(0),它只是等待按下,但当提出问题时,图像根本没有出现?我怀疑Highgui库可能缺少依赖项或其他内容。