我使用 ssh -Y username@adress 连接到 ssh 服务器。 在服务器上,我使用 IDLE 运行 python2.7。 如果我使用 matplotlib,我可以在客户端看到结果图。这表明图形转发没有问题。 但是,当我使用 OpenCV 时:
cv2.imshow('img_final', img_final)
cv2.waitKey(0)
cv2.destroyAllWindows()
它在 ssh 服务器屏幕上打开并显示图像,而不是在客户端 ssh 计算机上。
我进行了搜索和研究,并针对典型的故障排除做出了回应: - 在我运行 client-ssh 的计算机上,echo $DISPLAY 响应:0。它运行 xterm。 - 在我的服务器 ssh 计算机上,我的 sshd_config 文件似乎没问题(X11Forwarding 是)。 echo $DISPLAY 显示 localhost:10.0。
此外,我可以使用图像查看器(例如“feh”)并在客户端上毫无问题地显示图像。
我不认为我有配置问题,因为服务器能够在客户端显示图形。
有没有办法在服务器上执行 python 脚本,并直接在客户端上显示来自 OpenCV 的结果图像(就像 MAtplotlib 那样)?
谢谢
最佳答案
如果它对你有用,你可以做一些类似连续捕捉的事情,但将每一帧存储为图像:
def deferred_init(self):
self.total_frames = 200
for i in range(self.total_frames):
self.stream = self.camera.capture_sequence(
['image%02d.jpg' % i]
)
return self.stream
(这个片段在一个对象中,因此是 self.x)这是假设你有 camera = PiCamera 和通常的初始化。无论如何,一旦调用 a) 你的工作目录将变得困惑(建议写入不同的文件夹)和 b) 你可以通过 ssh 使用任何你喜欢的方式查看你的图像。这种方式测试捕获是否有效,但也允许您从 ssh 查看。
关于python - 如何在 ssh 客户端而不是 ssh 服务器上显示 python/openCV 结果图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055368/