背景
连接服务器以后,想用open3d可视化点云、matplotlib画点图,但是一直不能用,原因也很简单,就是没有配置GUI传输显示,那肯定是要配置X11相关的东西。
过程
服务器
确保服务器下载了xterm、xorg-x11-xauth两个包,不确定可以用dpkg -l
加正则表达式查看,应该基本上都有。之后检查/etc/ssh/sshd_config
是否有X11Forwarding yes
,如果没有或者为注释状态,则需要使用sudo
权限修改至所需状态。接着,修改.bashrc
(用户主目录下的隐藏文件),具体为新增环境变量$DISPLAY="localhost:10.0"
,最后使用source ~/.bashrc
重启bash,使用echo $DISPLAY
命令确认环境变量是否配置成功(输出对应的localhost:10.0
)即可。
有些博客也用0.0,但其实都一样,配置的是X11转发走的端口,可以都试一下,也可以试试其他比如2.0, 3.0……,重要的这个加入后面是0.0,则第二步本机中配置
**DISPLAY offset**
必须是0,如果是10.0,则必须是10,其他依此类推。
本机
在本机安装MobaXterm,点击Settings-->Configurations-->X11,设置如下:
ModelXterm支持X11转发,与Xming一样,我看网上很多博客都用的是Xming,我还是参考[1],用了ModelXterm。其实都差不多,使用他们都是为了使得VScode运行可视化代码时,可视结果能从配置的X11端口(即localhost后面的10.0)转发。
VScode
VScode除了下载Remote-SSH
或者Remote development
插件外,还需下载Remote-X11
插件,之后修改SSH远程连接的.config
配置,在服务器的配置中加入如下三行:
使用
首先需要保证使用ModelXterm或是xming
连接上服务器(前提),然后使用VScode连接服务器才能支持可视化结果转发,整个过程都要保证ModelXterm一直与服务器连接着。
测试
- 终端terminal使用
xclock
可以出现可视化时钟,使用xeyes
可以出现如下:
- matplotlib可视化测试:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
ax = plt.axes(projection='3d')
ax.scatter(np.random.rand(10),np.random.rand(10),np.random.rand(10))
plt.show()
OK,配置成功
标签:VScode,配置,matplotlib,openCV,open3d,可视化,X11,服务器 From: https://www.cnblogs.com/name555difficult/p/17607525.html