使用标准 USB 网络摄像头
您可以使用标准的 USB 网络摄像头在树莓派上拍照和录像,而不必使用树莓派 相机模块。
请注意,摄像头模块的质量和可配置性远远优于标准 USB 网络摄像头。
安装 fswebcam
首先,安装fswebcam
软件包:
`` sudo apt 安装 fswebcam
## 将您的用户添加到"视频"组
如果您未使用默认的" pi"用户帐户,则需要将用户名添加到" video"组中,否则将看到"权限被拒绝"错误。
``
sudo usermod -a -G video <用户名>
要检查用户是否已正确添加到组中,请使用" groups"命令。
基本用法
输入命令" fswebcam",后跟文件名,然后将使用网络摄像头拍照,并保存到指定的文件名:
`` fswebcam image.jpg
此命令将显示以下信息:
---打开/dev/video0 ... 正在尝试源模块 v4l2 ... /dev/video0已打开。 没有指定输入,使用第一个。 将分辨率从 384x288 调整为 352x288 。 ---抓架... 损坏的 JPEG 数据:标记 0xd4 之前的 2 个无关字节 在 0 .00秒内捕获的帧。 ---处理捕获的图像... 将 JPEG 图像写入" image.jpg"。
![基本图像捕获](images/image.jpg)
请注意使用较小的默认分辨率,并存在显示时间戳的横幅。
### 指定分辨率
本示例中使用的网络摄像头的分辨率为 1280 x 720,因此要指定要使用的图像分辨率,请使用-r标志:
``
fswebcam -r 1280x720 image2.jpg
此命令将显示以下信息:
---打开/dev/video0 ...
正在尝试源模块 v4l2 ...
/dev/video0已打开。
没有指定输入,使用第一个。
---抓架...
损坏的 JPEG 数据:标记 0xd5 之前的 1 个无关字节
在 0 .00秒内捕获的帧。
---处理捕获的图像...
将 JPEG 图像写入" image2.jpg"。
现在以网络摄像头的完整分辨率拍摄照片,并带有横幅。
不指定横幅
现在添加--no-banner
标志:
`` fswebcam -r 1280x720-无横幅 image3 .jpg
其中显示以下信息:
---打开/dev/video0 ... 正在尝试源模块 v4l2 ... /dev/video0已打开。 没有指定输入,使用第一个。 ---抓架... 损坏的 JPEG 数据:标记 0xd6 之前的 2 个无关字节 在 0 .00秒内捕获的帧。 ---处理捕获的图像... 禁用横幅。 将 JPEG 图像写入" image3.jpg"。
![无横幅的全分辨率图像](images/image3.jpg)
现在,以全分辨率拍摄照片,没有横幅。
## 坏图片
通过 USB 网络摄像头,您可能会遇到质量较差的图片,例如以下偶然的艺术作品:
![不良的网络摄像头图片](images/jack.jpg)
某些网络摄像头比其他网络摄像头更可靠,但是质量较差的网络摄像头可能会出现这种问题。如果问题仍然存在,请确保您的系统为[最新](../../raspbian/updating.md)。也可以尝试使用其他网络摄像头,但是树莓派 [摄像头模块](https://www.raspberrypi.org/help/camera-module-setup/)可以提供最佳性能。
## Bash脚本
您可以编写一个 Bash 脚本,用网络摄像头拍照。下面的脚本将图像保存在`/home/pi/webcam`目录中,因此首先使用以下命令创建`webcam`子目录:
``
mkdir网络摄像头
要创建脚本,请打开您选择的编辑器并编写以下示例代码:
``
!/bin/bash
DATE = $(日期+"%Y-%m-%d_%H%M")
fswebcam -r 1280x720-无横幅/home/pi/webcam/$DATE.jpg
该脚本将拍照并使用时间戳命名文件。假设我们将其保存为" webcam.sh",我们首先将文件设为可执行文件:
``
chmod + x webcam.sh
然后运行:
`` ./webcam.sh
它将运行文件中的命令并给出通常的输出:
---打开/dev/video0 ... 正在尝试源模块 v4l2 ... /dev/video0已打开。 没有指定输入,使用第一个。 ---抓架... 损坏的 JPEG 数据:标记 0xd6 之前的 2 个无关字节 在 0 .00秒内捕获的帧。 ---处理捕获的图像... 禁用横幅。 将 JPEG 图像写入" /home/pi/webcam/2013-06-07_2338.jpg"。
## 使用 cron 的延时
您可以使用`cron`安排以给定的时间间隔拍摄照片,例如每分钟拍摄一次延时拍摄。
首先打开 cron 表进行编辑:
crontab -e
这将询问您要使用哪个编辑器,或在默认编辑器中打开。在编辑器中打开文件后,添加以下行以安排每分钟拍照(请参考上方的 Bash 脚本):
``
* * * * * /home/pi/webcam.sh 2>&1
保存并退出,您应该看到以下消息:
`` crontab:安装新的 crontab ```确保脚本不会保存使用相同文件名拍摄的每张照片。每次都会覆盖图片。
其他有用的工具
使用其他工具可能会在使用相机或网络摄像头时派上用场: