一、前言

    首先,小编想要讲一下小编为了能够让python驱动CSI摄像头花了将近三天的时间。在这三天里,小编找了各种有关于树莓派CSI摄像头的文档、文章以及视屏,看过许许多多的UP主在视频中如何完成驱动树莓派的CSI摄像头,也参考过很多博主在驱动CSI摄像头时遇到的问题,但是呢很多的问题啊,形像而神不像。下面小编就将这几天遇到的问题一一展示出来

  • 问题一:在打开树莓派的CSI摄像头的配置后VNC连接不上了
  • python调用摄像头自适应伸缩 python调用csi摄像头_opencv

  • 问题2 使用python的opencv库函数无法驱动CSI摄像头
    (这个不能驱动也不是完全不能驱动,在命令行使用管理员权限后。还是能够在python里面驱动的。哈哈哈啊哈)
  • python调用摄像头自适应伸缩 python调用csi摄像头_树莓派_02


  • python调用摄像头自适应伸缩 python调用csi摄像头_opencv_03

二、驱动CSI摄像头

1、打开CSI摄像头

(说在前面,小编在也看到过在树莓派的界面上打开CSI摄像头配置的,但是很遗憾小编的树莓派4无法在桌面上打开并且配置,只能够通过命令行配置。)

在putty或者Xshell命令行中,输入sudo raspi-config打开树莓派的设置界面

python调用摄像头自适应伸缩 python调用csi摄像头_python调用摄像头自适应伸缩_04


在点击pi进入连接配置界面

python调用摄像头自适应伸缩 python调用csi摄像头_opencv_05


最后,在选择Camera让它使能(enabled),并且重启就好啦。

python调用摄像头自适应伸缩 python调用csi摄像头_嵌入式硬件_06

2、驱动CSI摄像头

(1)、在命令行中驱动CSI摄像头

步骤1:输入命令 vcgencmd get_camera

检测CSI摄像头是否配置成功。返回下面图片中的结果,恭喜你配置失败了!

python调用摄像头自适应伸缩 python调用csi摄像头_嵌入式硬件_07


步骤2:输入命令 raspistill -o test.jpg检测摄像头是否工作正常。如果工作正常,当前目录会多出一张test.jpg的照片的。

(2)、使用python驱动CSI摄像头

在使用Python相关库函数驱动CSI摄像头,常见的库函数当然是openc啦,但是小编这里使用opencv就是不能够成功,小编也不清楚是为什么。(其实小编推测是权限的问题,但是可能嘛。哈哈哈哈)使用opencv库函数驱动的代码就在上面啦,大家伙自行查阅哈。

  • 下面小编想展示的是使用picamera函数驱动
import picamera,time


with picamera.PiCamera() as camera:
    camera.resolution = (1024, 768)
    camera.start_preview()
    time.sleep(2)
    camera.capture('foo.jpg')
    print('finish')

(到这里,已经能够解决上面的问题2啦!)

三、问题解决

  • 问题2:
        请大家查看第二点。
  • 问题1的解决方案:
        至于问题1,小编在网上找到了几种原因:
            原因1,树莓派的内存不足,需要清理。可以使用命令 apt-get autoremove或apt-get autoclean。
            原因2,VNC的分辨率不合适,选择合适的分辨率即可。具体的步骤这里不做演示,如果小编没有记错VNC的分辨率设置应该是在上图的第7个选项中。
        不过很可惜的是,小编这里不是上述原因,因此使用上述的两个方法都不能够解决。于是乎小编就没有使用VNC连接啦,直接使用windows自带的远程连接了,这不但能够连接,还能够解决不能显示桌面的问题,似乎比VNC更加方便呐。哈哈哈啊哈哈