使用Xming在WSL中显示openCV imshow

使用Xming在WSL中显示openCV imshow,opencv,windows-subsystem-for-linux,wsl-2,xming,Opencv,Windows Subsystem For Linux,Wsl 2,Xming,我正在处理一些视频处理任务,并一直使用opencv python 4.2.0作为我的go-to库。起初,使用imshow功能显示视频帧时出现问题-我只能看到一个小的黑色窗口,但我认为我的逻辑有问题。我尝试以最简单的形式再现问题-加载并显示静态图像: 导入cv2 frame=imread(“path/to/some/image.png”) 打印(框架形状) cv2.imshow(“测试”,帧) 输出: >(600600,3) 我以前在这个开发环境中没有遇到过类似的问题。我在WSL(Ubuntu

我正在处理一些视频处理任务,并一直使用opencv python 4.2.0作为我的go-to库。起初,使用
imshow
功能显示视频帧时出现问题-我只能看到一个小的黑色窗口,但我认为我的逻辑有问题。我尝试以最简单的形式再现问题-加载并显示静态图像:

导入cv2
frame=imread(“path/to/some/image.png”)
打印(框架形状)
cv2.imshow(“测试”,帧)
输出:

>(600600,3)


我以前在这个开发环境中没有遇到过类似的问题。我在WSL(Ubuntu16.04)下开发,并使用Xming在Win10下显示程序窗口。

我知道,当执行函数
waitKey()
时,窗口中的图像会更新,所以您必须使用它

import cv2

frame = cv2.imread("path/to/some/image.png")
print(frame.shape)

cv2.imshow('test', frame)
cv2.waitKey(1)

至少它在基于Ubuntu 18.04的Linux Mint 19.3上解决了这个问题,因为我知道在执行函数
waitKey()
时,窗口中的图像会更新,所以您必须使用它

import cv2

frame = cv2.imread("path/to/some/image.png")
print(frame.shape)

cv2.imshow('test', frame)
cv2.waitKey(1)

至少它在基于Ubuntu18.04的LinuxMint19.3上解决了这个问题,我很惊讶它在没有
waitKey()
的情况下显示出来,如果你不使用
waitKey()
,它就没有时间显示它了
imshow()
不等待图像和程序结束工作。找到解决方案了吗?我也有这个问题wel@Snailfuras提出的解决方案解决了这个问题,我很惊讶它在没有
waitKey()
的情况下会显示出来。如果你不使用
waitKey()
,那么它就没有时间显示它了
imshow()
不等待图像和程序结束工作。找到解决方案了吗?我也有这个问题wel@Snailfuras提出的解决方案解决了这个问题