上个帖子
【树莓派3B+测评】点亮LED介绍了如何用python控制树莓派的GPIO口点亮LED,这次介绍如何用python+opencv来使用USB摄像头。
首先介绍另一种可视化登录的安装方式,
因为之前介绍的
xrdp+tightvncserver软件包貌似不支持opencv的远程窗口显示。
安装方式如下:
- sudo apt-get install x11vnc #安装x11vnc
- x11vnc -storepasswd #设置可视化远程登录密码
- x11vnc -usepw #开启
然后就可以用TightVNC进行可视化登录了,输入树莓派的本地IP地址,我的是192.168.1.101:
接着输入刚刚设置的密码就可以登录到可视化界面了
(注意每次使用TightVNC之前需要先用PuTTY登录,输入x11vnc -usepw命令开启可视化远程功能)。
接下来先通过树莓派系统自身的功能来使用USB摄像头。
将一个USB摄像头插入树莓派的USB口,然后在终端(PuTTY或可视化窗口内打开终端)中输入以下命令:
- lsusb #查看USB接口上的设置
- ls /dev/video* #查看USB摄像头的设备名称
- sudo apt-get install fswebcam #安装一个USB摄像头的软件包
- sudo fswebcam /dev/video0 ~/Desktop/test/img1.jpg #拍摄一张照片并保存的桌面的test文件夹中
打开test文件夹,可以看到刚刚拍摄的照片。
下面安装另一个软件包,来实时显示USB摄像头捕获的图像,输入以下命令:
- sudo apt-get install luvcview #安装另一个USB摄像头的软件包
- luvcview -s 800x600 #获取图像并显示,800x600为窗口大小
出现一个错误信息,原因是在PuTTY中无法打开一个窗口进行显示,
我们可以在可视化窗口的终端中执行次条命令,如下图:
可以看到实时显示的窗口。
最后介绍用python+opencv来读取USB摄像头并显示。
首先还是先安装需要的软件包:
- sudo apt-get install libopencv-dev
- sudo apt-get install python-opencv
然后在桌面test文件夹新建opencv-camera.py文件,输入以下程序:
- import cv2
-
- cap = cv2.VideoCapture(0)
- while(1):
- ret,frame = cap.read()
- cv2.imshow('usb camera', frame)
- if(cv2.waitKey(10) == 27): #Esc -> quit
- break
- cap.release()
- cv2.destroyAllWindows()
然后就可以用python2来执行程序了,终端中进到test文件夹中,输入以下命令:
就可以看到通过opencv显示的USB的摄像头的画面了,esc键可结束程序。
借助opencv,我们还可以对图像中的物体进行实时识别,这些以后会继续介绍。
本帖最后由 DDZZ669 于 2018-9-22 20:23 编辑