1、使用SSH远程连接到树莓派
2、新建存放代码的目录
mkdir /home/pi/my_code_directory
3、进入存放代码的目录
cd /home/pi/my_code_directory
4、新建py文件
nano cv2test.py
5、输入代码
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取视频帧
ret, frame = cap.read()
# 显示视频帧
cv2.imshow('Video', frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头和关闭窗口
cap.release()
cv2.destroyAllWindows()
先按键盘上的ctrl+o,再按回车保存,再按ctrl+x退出nano编辑器回到命令行界面。
6、执行代码
python3 cv2test.py
由于是SSH连接,出现如下错误:
Unable to init server: 无法连接:拒绝连接
(Video:25768): Gtk-WARNING **: cannot open display:
从错误消息看,这可能是因为正在尝试在没有图形环境的服务器上运行带有GUI界面的程序。OpenCV(cv2)通常需要显示图像,而在缺少图形环境的情况下,它无法正常工作。
如果在远程服务器或没有图形界面的系统上运行代码,可以考虑以下解决方案:
确保代码不需要图形界面。如果您只使用OpenCV进行图像处理、计算或保存图像等操作,并不需要实时显示图像,可以通过在代码中禁用图形界面相关的功能来解决此问题。
如果确实需要实时显示图像,在本地机器上开启一个图形界面会话,并通过SSH将图像显示到本地。您可以使用X11 tunnelling来实现这一点。在进行SSH连接时,确保使用-X或-Y选项来启用X11转发。
解决方法:使用VNC远程连接到树莓派,重新进入目录执行代码,弹出图像界面,程序正常运行