DDZZ669 发表于 2018-9-22 20:17

【树莓派3B+测评】使用USB摄像头

本帖最后由 DDZZ669 于 2018-9-22 20:23 编辑

上个帖子【树莓派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 -s800x600   #获取图像并显示,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文件夹中,输入以下命令:
python2 opencv-camera.py
就可以看到通过opencv显示的USB的摄像头的画面了,esc键可结束程序。
借助opencv,我们还可以对图像中的物体进行实时识别,这些以后会继续介绍。


donatello1996 发表于 2018-12-25 10:16

我的摄像头比较便宜所以拍出来的图片比较辣鸡。。。你这个是多少钱买的?

DDZZ669 发表于 2018-12-25 16:21

donatello1996 发表于 2018-12-25 10:16
我的摄像头比较便宜所以拍出来的图片比较辣鸡。。。你这个是多少钱买的?

这是我们实验室的一个USB摄像头,不清楚价格

DDZZ669 发表于 2018-12-25 16:25

donatello1996 发表于 2018-12-25 10:16
我的摄像头比较便宜所以拍出来的图片比较辣鸡。。。你这个是多少钱买的?



就是这个:

zxopenljx 发表于 2021-5-24 10:45

<p>谢谢楼主分享</p>
页: [1]
查看完整版本: 【树莓派3B+测评】使用USB摄像头