树莓派外接摄像头,最常用的有两种:CSI摄像头、USB摄像头。当然网络摄像头也是可以的。
一般的USB摄像头都是UVC免驱的,而且可以方便的插拔和安装,平时最为常用。
一、硬件设备
usb摄像头使用的 罗技c310。(只要是UVC免驱就可以)
二、连接并测试摄像头
(1)使用命令检测usb设备:lsusb
插入usb摄像头后,会显示设备ID和信息,像我的:Bus 001 Device 008: ID 046d:081b Logitech, Inc. Webcam C310
(2)之后使用命令,查看设备文件名称。
ls -l /dev/video*
usb摄像头插入后增加了 video0 和video1 这两个设备,我测试操作这两个都可以用,都是同一个设备。至于为什么跟别人不一样是两个,不得而知。
之后安装摄像头软件:fswebcam
sudo apt-get install fswebcam
安装完成后,使用指令抓拍一张照片。
fswebcam /dev/video0 --no-banner -r 640x480 ~/image01.jpg
三、常用参数
fswebcam /dev/video0 --no-banner -r 640x480 ~/image01.jpg中的参数功能:
/dev/video0:指定操作设备,像我插入usb摄像头后增加了两个设备,实测video0 和video1 都可以用,都是同一个摄像头。
--no-banner:图片上隐藏横幅。
-r 640x480:设置分辨率 640x480。
~/image01.jpg:存储路径,当前用户目录下,保存为 image01.jpg。
fswebcam /dev/video0 -r 640x480 ~/image01.jpg
在图片上有横幅,上面有时间戳信息。
四、fswebcam详细参数
--help显示此帮助页面并退出。
-c,--config <文件名>从文件加载配置。
-q,--quiet隐藏除错误以外的所有消息。
-v,--verbose在捕获时显示其他消息
--version显示版本并退出。
-l,--loop <seconds>在循环模式下运行。
-b,--background在后台运行。
-o,--output <文件名>将日志输出到文件。
-d,--device <名称>设置要使用的源。
-i,--input <数字/名称>选择要使用的输入。
-t,--tuner <number>选择要使用的调谐器。
-f,--frequency <number>选择使用的频率。
-p,--palette <名称>选择要使用的调色板格式。
-D,--delay <数字>设置预捕获延迟时间。 (秒)
-r,--resolution <size>设置捕获分辨率。
--fps <framerate>设置捕获帧速率。
-F,--frames <number>设置要捕获的帧数。
-S,--skip <number>设置要跳过的帧数。
--dumpframe <文件名>将原始帧转储到文件。
-s,--set <名称> = <值>设置控制值。
--revert恢复原始捕获的图像。
--flip <direction>翻转图像。 (h,v)
--crop <大小> [,<偏移量>]裁剪图像的一部分。
--scale <size>缩放图像。
--rotate <角度>以直角旋转图像。
--deinterlace减少交错伪像。
--invert反转图像颜色。
--greyscale删除图像的颜色。
--swapchannels <c1c2>交换通道c1和c2。
--no-banner隐藏横幅。
--top-banner将横幅放在顶部。
--bottom-banner将横幅放在底部。 (默认)
--banner-colour <colour>设置横幅颜色。 (#AARRGGBB)
--line-colour <colour>设置横幅线的颜色。
--text-colour <colour>设置文本颜色。
--font <[名称] [:大小]>设置字体和/或大小。
--no-shadow禁用文本阴影。
--shadow启用文本阴影。
--title <文本>设置主标题。 (左上方)
--no-title清除主标题。
--subtitle <文本>设置字幕。 (左下方)
--no-subtitle清除字幕。
--timestamp <格式>设置时间戳格式。 (右上)
--no-timestamp清除时间戳记。
--gmt使用GMT代替本地时区。
--info <文本>设置信息文本。 (右下)
--no-info清除信息文本。
--underlay <PNG图像>设置参考图像。
--no-underlay清除参考底图。
--overlay <PNG图像>设置覆盖图像。
--no-overlay清除覆盖。
--jpeg <factor>输出JPEG图像。 (-1,0-95)
--png <factor>输出PNG图像。 (-1,0-10)
--save <文件名>将图像保存到文件。
--exec <命令>执行命令并等待其完成。