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

标签 python linux opencv ssh x11

我使用 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/

相关文章:

python - 根据 Linux 文件系统层次结构标准,放置 Python 虚拟环境的正确位置在哪里?

linux - 在 windows 和 linux 上都会成功的命令,但会给出不同的结果

c++ - 如何检测多柱形态?

c++ - 使用 opencv 复制/混合不同大小的图像

python - 在 Python 中获取彩色形状周围边界的坐标

python - 从 cmd 行或 bash 脚本将参数传递给 python 脚本

python - 在 Jupyter Notebook 中运行时,来自 Python 脚本的 Matplotlib 图未显示在输出中

python - 如何使用python从mysql表数据写入excel

linux - Linux 中的 Cut 和 Awk 命令

linux - 使用 sed 从管道中删除空行