Linux服务器通过X11实现图像化界面显示
背景描述
如何远程连接服务器并将图形界面输出一直是我烦恼的一个点,在实现很多项目的时候,使用matplotlib输出图像的内容是无法显示的,必须将图像保存下来查看,大大降低了项目的效率;
像一些需要实时调控的项目,例如实时的行人追踪,我们往往传入一个视频文件,并且实时对视频中的行人进行检测并输出,如果不能将检测结果输出,而是需要保存,那么不仅代码需要修改,也不便于我们进行调试;
这里推荐一个使用X11 Forwarding技术 + MobaXterm 工具的方法,安装简单,使用方便;
服务器端配置
1、修改SSH配置
vim /etc/ssh/sshd_config
# 将如下选项按下文设置
X11Forwarding yes
X11UseLocalhost no
AddressFamily inet
2、重启SSH服务
service ssh restart
Window端配置
1、安装MobaXterm工具
MobaXterm官网安装:https://mobaxterm.mobatek.net/download-home-edition.html
选择右边安装版进行下载;
下载后得到如下图所示压缩包:
需要解压缩!!!
随后运行msi安装程序,安装步骤无脑next就不在这说明了!
2、运行MobaXterm工具
新建一个会话,SSH连接你的服务器(和Xshell等远程连接工具类似):
登录服务器:
这里需要输入用户名,随后输入密码即可!!!
简单测试
完成以上操作后,已经可以实现图形化输出了!
下面用matplotlib画图进行简单测试:
代码:
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0, 69, 1)
plt.plot(t, t, 'r', t, t**2, 'b')
label = ['t', 't**2']
plt.legend(label, loc='upper left')
plt.show()
执行如上程序,输出画出的图像:
大功告成!!!
当然,像QT界面等也可以运行,功能相当强大!
大家有遇到其他问题可以评论或者私信我!