Windows10远程RPi4运行OpenCV显示视频窗口失败求助
问题:VSCode SSH连接树莓派运行OpenCV,视频窗口无法显示在Windows本地
报错信息
qt.qpa.xcb: could not connect to display :1 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: xcb. Stack trace (most recent call last): #25 Object "python", at 0x558888297b, in #24 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847bbe17, in __libc_start_main #23 Object "python", at 0x55888840a3, in Py_BytesMain #22 Object "python", at 0x5588883a3b, in Py_RunMain #21 Object "python", at 0x558895f4eb, in PyRun_SimpleFileExFlags #20 Object "python", at 0x558895f323, in #19 Object "python", at 0x558895bfcb, in #18 Object "python", at 0x558895beb7, in #17 Object "python", at 0x5588924057, in PyEval_EvalCode #16 Object "python", at 0x5588924017, in PyEval_EvalCodeEx #15 Object "python", at 0x5588923c4f, in _PyEval_EvalCodeWithName #14 Object "python", at 0x5588881e9b, in _PyEval_EvalFrameDefault #13 Object "python", at 0x558888fe7f, in _PyObject_MakeTpCall #12 Object "python", at 0x558888f7af, in #11 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f77b8a43b, in #10 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f7876e87f, in #9 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f7878089b, in #8 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/cv2.abi3.so", at 0x7f78774537, in #7 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Widgets-b1296c1e.so.5.15.0", at 0x7f7585db03, in QtOpenCVPython::QApplicationPrivate::init() #6 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9fa77, in QtOpenCVPython::QGuiApplicationPrivate::init() #5 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Core-9e162752.so.5.15.0", at 0x7f749710ff, in QtOpenCVPython::QCoreApplicationPrivate::init() #4 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9ce07, in QtOpenCVPython::QGuiApplicationPrivate::createEventDispatcher() #3 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Gui-a45894d1.so.5.15.0", at 0x7f74f9c963, in QtOpenCVPython::QGuiApplicationPrivate::createPlatformIntegration() #2 Object "/home/pi/mambaforge/envs/mb/lib/python3.8/site-packages/cv2/../opencv_contrib_python.libs/libQt5Core-9e162752.so.5.15.0", at 0x7f7477213b, in QtOpenCVPython::QMessageLogger::fatal(char const*, ...) const #1 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847bba9f, in abort #0 Object "/lib/aarch64-linux-gnu/libc.so.6", at 0x7f847ceeac, in gsignal Aborted (Signal sent by tkill() 5843 1000) Aborted
SSH配置文件(C:\Users\mywname\config)
Host 192.168.1.8 HostName 192.168.1.8 User pi ForwardX11 yes ForwardX11Trusted yes EnableSSHKeysign yes IdentityFile C:\Users\<myusername>\.ssh\id_rsa
背景与已尝试操作
- 树莓派运行Python代码调用OpenCV的
cv.imshow()显示摄像头视频,希望窗口显示在Windows本地 - Windows 10未安装QT,树莓派安装
opencv-contrib-python 4.7.0.72,因依赖限制无法更换为无头版本 - 已安装VSCode的Remote X11和Remote X11(SSH)插件,SSH密钥登录验证有效
- 设置
export DISPLAY=:0时,视频窗口显示在树莓派本地;设置export DISPLAY=:1时出现上述报错
解决步骤
1. 在Windows端安装并启动X服务器
Windows本身没有X11显示服务,需要安装第三方X服务器软件(如VcXsrv):
- 安装VcXsrv,启动时选择Multiple windows,Display number设为
0,勾选Disable access control - 启动后保持软件在后台运行
2. 正确设置树莓派的DISPLAY环境变量
- 查看Windows本地的局域网IP(如
192.168.1.100) - 在VSCode连接树莓派后的终端中执行:
export DISPLAY=你的Windows局域网IP:0.0 - 若要永久生效,将上述命令添加到树莓派的
~/.bashrc文件中:echo "export DISPLAY=你的Windows局域网IP:0.0" >> ~/.bashrc source ~/.bashrc
3. 验证X11转发是否正常
- 在树莓派终端安装X11测试工具(若未安装):
sudo apt update && sudo apt install x11-apps - 运行
xeyes命令,若Windows端弹出一个带眼睛的窗口,说明X11转发配置成功
4. 调整OpenCV的Qt平台配置(可选)
若仍有Qt插件报错,在Python代码开头添加:
import os os.environ['QT_QPA_PLATFORM'] = 'xcb'
强制Qt使用xcb平台插件
内容的提问来源于stack exchange,提问作者Franva
相关产品推荐
相关产品推荐

