vscode中使用ssh连接linux(树莓派)opencv不能使用imshow()函数输出图片和视频的解决方法

1、vscode使用插件ssh树莓派

2、树莓派中./test能直接调用,但是vscode命令行不能报错

Can't initialize GTK backend in function 'cvInitSystem'

 3、发现在mobaxterm中可以直接运行且能出现画面

4、发现问题:通过vscode,远程连接服务器之后,需要将界面show出来,由于程序本身是运行在服务器上的,所以无法直接显示到我们的本地系统,所以需要通过Xming来辅助实现。

解决方法

1、在vscode中添加拓展(remote X11)第一个

2、下载MobaXterm并配置连接

3、在MobaXterm中,查看当前开放的DISPLAY的地址

$ echo $DISPLAY
localhost:10.0  # 有时候会是localhost:11.0

4、开始配置vscode,首先需要将.ssh\config文件重新编辑一下,加入以下部分

  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host mypi
    HostName 192.168.43.101
    User pi
    ForwardX11 yes
    ForwardX11Trusted yes
    ForwardAgent yes
  
#Host mypi ssh设备名字随便起
#   HostName 192.168.43.101 设备ip地址
#    User pi  用户名

5、在vscode的项目中生成launch.json文件

6、配置launch.json,添加以下部分

            "env":{
                "DISPLAY":"localhost:10.0"
            }

7、在vscode中输入命令echo $DISPLAY    如果不是空的,并输出了类似 localhost:10.0 的结果的话,跳过本步骤。如果输出是空的,则vim ~/.bashrc,加入以下部分

# insert environmentvariable to X11
export DISPLAY="localhost:10.0"  # 可能是localhost:11.0,看MobaXterm输出情况

然后退出编辑,输入source ~/.bashrc使变量生效

这样输出了就正确了

 

注意:要保持mobaxterm的ssh在线才能使用

 

参考:vscode + ssh + xming + pyqt / matplotlib / imshow

/**************************************************分割线***************************************************/

前面我属实肤浅了

关于$DISPLAY的详细可以参考这里:Linux DISPLAY 设置

里面详细讲解了DISPLAY参数的运用,就是显示在什么地方

如果想退回到树莓派中显示就执行vim ~/.bashrc 把前面的这一行注释掉即可,然后执行source ~/.bashrc更新一下,但是我不知道我为什么不行(重启了一下就行了)

最后又能在树莓派里面输出图像了。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树莓派使用OpenCV进行图像处理,可能会遇到摄像头图像延迟的问题。这种延迟是由于图像采集、传输和处理所需的间造成的。延迟会导致实图像处理的效果受到一定影响,特别是在需要实反馈的应用。 为了解决树莓派使用OpenCV的图像延迟问题,我们可以采取以下几种方法: 1. 降低分辨率:降低图像的分辨率可以减少处理的数据量,从而减少延迟。通过适当降低分辨率,可以在一定程度上提高处理速度和实性。 2. 优化算法:对于图像处理的算法,可以进行一定的优化。例如,选择更高效的算法或者使用并行计算技术,以提高处理速度和性能。 3. 使用硬件加速:利用树莓派的GPU进行图像处理所需的运算,可以大大提高处理速度。通过使用OpenCV的硬件加速功能,可以减少延迟并提高性能。 4. 缓存机制:在图像处理,可以采用缓存机制来提高处理效率。通过对图像数据进行缓存,可以减少传输和处理的间,从而减少延迟。 5. 多线程处理:在树莓派上可以使用多线程技术进行图像处理。将图像采集和处理分别放在不同的线程,可以提高处理的实性和性能。 总之,使用树莓派进行图像处理,我们可以通过降低分辨率、优化算法、使用硬件加速、使用缓存机制和多线程处理等方法解决摄像头图像延迟的问题,从而提高图像处理的实性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值