树莓派摄像头详解
上图,适用于3B+的摄像头,排线两端一样宽,只能用于3B+系列,排线一端宽一端窄可用于zero w
树莓派官方摄像头很贵,100多,在此拿淘宝上的20元的摄像头为例进行讲解
首先,树莓派支持的摄像头必须是CSI接口,就是可以拆卸的排线那种,卡扣扣在主板上。而树莓派3B+和zero系列的摄像头是通用的,但是,注意但是,他们主板的接口不一样,3B+的宽,zero w的窄,如果你想一个摄像头两个主板用,请一定要买两根各自配套的排线。
其次,摄像头可拆卸。这是指排线可以和摄像头模块拆分开,并且摄像头模块上的摄像头也可以拉下来。也就上上图这个可以拆成3块。之前我买的第一个摄像头花屏,后来无意中把摄像头从摄像头模块上扯下来了再次按上去竟然奇迹般的好了。
最后,请买一个摄像头支架,4.5元淘宝上。好处就是可以固定在外壳上,不会晃来晃去,不要省这点钱,买来你会发现一定不是浪费。如下图
摄像头安装
先断电,装好之后再开机,不要在开机的时候拆卸摄像头,以免损坏主板或者摄像头。
摄像头调试
先看系统识别到了没
pi@raspberrypi-3bplus:~ $ ls /dev/video0 /dev/video0 pi@raspberrypi-3bplus:~ $ pi@raspberrypi-3bplus:~ $ vcgencmd get_camera supported=1 detected=1
接着用这条命令就可以看到画面了,当然延迟很高,转动摄像头画面会滞后几秒钟,毕竟“物美价廉”,不可要求太高。
pi@raspberrypi-3bplus:~ $ luvcview luvcview 0.2.6 SDL information: Video driver: x11 A window manager is available Device information: Device path: /dev/video0 Stream settings: Frame format: MJPG Frame size: 640x480 Frame rate: 30 fps
拍照:
lucview 的安装
安装命令:sudo apt-get install luvcview
安装完成之后,便可使用 lucview 命令弹出实时拍摄窗口了
如果提示:ERROR opening V4L interface: No such file or directory,或找不到 /dev/video0,可按照一下方式解决
树莓派中的camera module是放在/boot/目录下以固件的形式加载的,不是一个标准的v4l2的摄像头ko驱动,所以加载起来之后会找不到/dev/video0的设备节点。
这是因为这个驱动是在底层的,v4l2这个驱动框架还没有加载,所以要在/etc/modules里面添加一行bcm2835-v4l2(是4L2,不是412,小写的L),
这句话意思是在系统启动之后会加载bcm2835-v4l2这个模块,这个模块在树莓派系统的/lib/modules/xxx/xxx/xxx下面,添加之后重启系统,就会在/dev/下面发现video0设备节点了。
sudo vim /etc/modules
添加下面这行到配置文件里面,然后重启系统
bcm2835-v4l2
此时再查看设备
ls /dev/video0
就可以看到设备了
拍摄一张名为image000.jpg的图片
raspistill -o image000.jpg
查看名为image000.jpg的图片
gpicview image000.jpg
常用命令:
# 两秒钟(时间单位为毫秒)延迟后拍摄一张照片,并保存为 image.jpg
raspistill -t 2000 -o image.jpg
# 拍摄一张自定义大小的照片。
raspistill -t 2000 -o image.jpg -w 640 -h 480
# 降低图像质量,减小文件尺寸
raspistill -t 2000 -o image.jpg -q 5
# 强制使预览窗口出现在坐标为 100,100 的位置,并且尺寸为宽 300 和高 200 像素。
raspistill -t 2000 -o image.jpg -p 100,100,300,200
# 禁用预览窗口
raspistill -t 2000 -o image.jpg -n
# 将图像保存为 PNG 文件(无损压缩格式,但是要比 JPEG 速度慢)。注意,当选择图像编码时,文件扩展名将被忽略。
raspistill -t 2000 -o image.png –e png
# 向 JPEG 文件中添加一些 EXIF 信息。该命令将会把作者名称标签设置为 Dreamcolor,GPS 海拔高度为 123.5米。
raspistill -t 2000 -o image.jpg -x IFD0.Artist=Dreamcolor -x GPS.GPSAltitude=1235/10
# 设置浮雕风格图像特效
raspistill -t 2000 -o image.jpg -ifx emboss
# 设置 YUV 图像的 U 和 V 通道为指定的值(128:128 为黑白图像)
raspistill -t 2000 -o image.jpg -cfx 128:128
# 仅显示两秒钟预览图像,而不对图像进行保存。
raspistill -t 2000
# 间隔获取图片,在 10 分钟(10 分钟 = 600000 毫秒)的时间里,每 10 秒获取一张,并且命名为 image_number_1_today.jpg,image_number_2_today.jpg... 的形式。
raspistill -t 600000 -tl 10000 -o image_num_%d_today.jpg
# 获取一张照片并发送至标准输出设备
raspistill -t 2000 -o -
# 获取一张照片并保存为一个文件
raspistill -t 2000 -o - > my_file.jpg
拍视频:
想要用摄像头模块拍一段视频的话,可以从命令行运行 raspivid 工具。下面这句命令会按照默认配置(长度5秒,分辨率1920x1080,比特率 17Mbps)拍摄一段视频。
raspivid -o mykeychain.h264
使用命令拍摄一段名为test001.h264的10秒钟视频
raspivid -o test001.h264 -t 10000
使用 "-w" 和 "-h" 选项将分辨率降为 1280x720
raspivid -o mykeychain.h264 -t 10000 -w 1280 -h 720
raspivid 的输出是一段未压缩的 H.264 视频流,而且这段视频不含声音。为了能被通常的视频播放器所播放,这个 raw 的 H.264 视频还需要转换。可以使用 gpac 包中所带有的 MP4Box 应用。
在 Raspbian 上安装 gpac,输入命令:
sudo apt-get install -y gpac
然后将这段 raw 的 H.264 格式的视频流转换为每秒30帧的 .mp4 格式视频:
MP4Box -fps 30 -add keychain.h264 keychain.mp4
发表评论