Mac下使用vscode远程到服务器时解决opencv显示图像的问题

问题背景

当你使用vscode远程到服务器进行开发的时候,想要显示图像会出现报错,时因为服务器没有GUI支持,不能直接显示图像。我在使用Mac的时候遇到了这个问题,给出解决的方案,搭建相关环境。

X11 Forwarding

  1. 在mac下安装X11,通过X11 forwarding转发来显示图像。链接:https://www.xquartz.org/
  2. 打开XQuartz,然后在Preferences(设置) -> Security选项中勾选“Allow connections from network clients”。
  3. 重启电脑

VSCode上配置

  1. 使用command + shift + P :打开emote-ssh: open configuration file
  2. 添加一行 ForwardX11 yes
  3. service ssh restart 重启服务器

一般来说,这样就可以了,使用xeyes测试一下,看是否成功。我在使用opencv显示的时候还遇到了其它问题:

  1. 报了一个GTK的错误,因为要使用GTK作为后端显示图像,需要下载配置
sudo apt-get install libgtk2.0-dev libgtk-3-dev
安装后,进入你下载的opencv文件夹,进入build文件重新编译:
cd /your_opencv_dir/opencv/build
cmake
make -j 
sudo make install
  1. 出现了Invalid MIT-MAGIC-COOKIE-1 keyError: Can’t open display: localhost:10.0,属于X11转发权限的问题:
    mac打开终端输入 xauth list,选择 your-mac-name/unix:0 MIT-MAGIC-COOKIE-1 some-long-hex-number。
    然后再ssh -X 到服务器,在服务器上添加这个cookie
    xauth add your-mac-name/unix:0 MIT-MAGIC-COOKIE-1 the-long-hex-number-from-previous-step
    再断开ssh,重新使用-X连接,尝试xeyes。

  2. 如果很多方法都不行,可以查看一下端口号。 echo $DISPLAY,有时候可能因为你的神奇操作会让端口号错误,甚至可以换一个端口号试试(啥方法都不中用的情况下)
    your-mac-name/unix:0 MIT-MAGIC-COOKIE-1 some-long-hex-number文章来源地址https://uudwc.com/A/k9y9w

原文地址:https://blog.csdn.net/guowei_huai/article/details/133209345

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年09月24日 15:48
下一篇 2023年09月24日 15:48