如何在 ssh 客户端而不是 ssh 服务器上显示 python/openCV 结果图像?

问题描述 投票:0回答:1

我使用 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 那样)?

谢谢

python linux opencv ssh x11
1个回答
0
投票

如果它对您有用,您可以执行连续捕获之类的操作,但将每个帧存储为图像:

    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 进行查看。

© www.soinside.com 2019 - 2024. All rights reserved.