Raspberry Pi上手系列 之六——Camera

 

记住,有蓝色胶带的一面应该面向以太网接口方向。

树莓派的主板上有一个专门为摄像头模块预留的接口:CSI(Camera Serial Interface)。注意 CSI 并不是树莓派特有的,而是 MIPI(移动产业处理器接口联盟)定义的一个接口,用于约束手机与摄像头连接和通信的规范

 

设置

  • 安装完成之后,给树莓派上电,开始进行设置

  • 首先是更新摄像头驱动,新版系统可能不用,但还是更新一下为好


sudo apt-get update

sudo apt-get upgrade

  • 更新完之后,需要启用,有两种方式,设置完之后均需重启才能生效

  • 首先是命令行方式,执行sudo raspi-config打开配置,选择Interfacing Options,再找到Camera然后选择启用即可

  • 第二种是直接 vnc 连接上去,点击树莓派图标->首选项->配置->接口->摄像头启用-ok 重启

  • 重启后查看设备是否成功挂载,ls -l /dev/ | grep video,看到 video0 表示成功挂载识别

使用

通过raspi-config工具更新了操作并使能摄像头之后,它会告诉树莓派摄像头已经连接成功,并增加了两个命令行工具以供用户使用摄像头。

1

2

raspistill

raspivid

这两个命令可分别让你拍摄静帧照片和HD视频了!

使用raspistill命令可能不适用于 usb 摄像头,那个需要安装使用sudo apt-get install uvccapture

画面捕捉

  • raspistill是集成在系统的,可以直接使用,运行raspistill -o h.jpg即可成功截图并保存输出,更多参数使用raspistill --help | more

录制视频

  • 执行raspivid -o v.h264 -t 5000,录制 5 秒长度的 1080p 视频,h264 是 MPEG4 之后的视频压缩格式,数据压缩比例高。桌面环境双击视频可直接播放,或者桌面环境执行omxplayer v.h264

或者

添加参数

拍摄照片,在 2000ms 后拍摄一张照片,然后保存为 keychain.jpg:

$ raspistill -o keychain.jpg -t 2000 

这句命令将下面就是一张由 Pi Cam 拍摄的我的小熊公仔钥匙链。

raspiyuv 工具用法差不多,只不过拍摄得到的是一张未处理过的raw图像。

通过摄像头模块拍视频

想要用摄像头模块拍一段视频的话,可以从命令行运行 raspivid 工具。下面这句命令会按照默认配置(长度5秒,分辨率1920x1080,比特率 17Mbps)拍摄一段视频。

$ raspivid -o mykeychain.h264

如果你想改变拍摄时长,只要通过 "-t" 选项来设置你想要的长度就行了(单位是毫秒)。

$ raspivid -o mykeychain.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 

参考文档:https://linux.cn/article-3650-1.html

https://blog.csdn.net/damanchen/article/details/85163229

https://shumeipai.nxez.com/2013/10/07/raspberry-pi-to-install-the-camera-module.html

https://www.imooc.com/article/296614
 

照片保存在当前目录。可以使用Winscp连接PC和Raspberry Pi,将照片从Raspberry传输到PC,在PC中查看媒体文件。

h264文件可以使用PotPlayer64.exe播放器打开。

 

深入1 ——更多命令参数介绍

https://www.cnblogs.com/bile/p/13213973.html

raspistill命令的相关参数和实验的具体效果:

-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取

执行下面的指令:

raspistill -o image%d.jpg -rot 180 -w 1024 -h 768 -t 20000 -tl 5000 -v

接着下面就会输出一系列的捕获的信息,

如图片的大小

图片的总捕获时间

图像是否旋转,

是否水平反转垂直反转:

下面是最后的捕获的结果:

注:这里解释一下图片的采集数量和-t参数以及-tl参数的相关关系:N_Picture = -t(获取图像前等待时间)/-tl(多久执行一次抓取时间) + 1。所以有20000/5000+1 = 5张图片

2、使用raspivid指令来生成.h246的文件

raspivid -o mykeychain.h264 -t 10000 -w 1280 -h 720  

这样就会在当前文件夹下面生成mykeychain.h264的文件:

如果你想改变拍摄时长,只要通过 "-t" 选项来设置你想要的长度就行了(单位是毫秒)。

如果你想改变图像的分辨率,使用 "-w" 和 "-h" 选项将分辨率降为 1280x720等等。

四、使用VLC等来实现http的视屏流传输:

1、首先需要在你的树莓派上面安装VLC的软件

sudo apt-get update
sudo apt-get install vlc --fix-missing
sudo apt-get install vlc

2、启动你的树莓派摄像头

sudo raspivid -o - -rot 180 -t 0 -fps 30|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264  

3、打开你PC机电脑上的VLC软件,选择打开网络串流(Ctrl+N),输入上面指令的端口号以及对应的树莓派的IP地址

(如下图所示我的树莓派的IP地址是192.168.1.129),运行结果如下图所示,当然也发现http的视频流的确比较卡,当然我采用的视频的画质是500W像素的画质,所以视频的质量比较差,当我将视频的画质调节到720*360时,感觉非常的流畅。(@局域网测试环境)

http://192.168.1.129:8080

 

后续在使用Python Opencv来控制调用树莓派的摄像头做些有意思的东西~

五、使用Raspiberry自带的摄像头python接口picamera库+Opencv来控制调用Camera

官网的Document参考:http://picamera.readthedocs.io/en/release-1.13/index.html

可以参考这里的完整教程:https://robocoderhan.github.io/

也可以参考我的另一篇博客:http://www.cnblogs.com/uestc-mm/p/7606855.html

 

深入2——查看照片

https://my.oschina.net/u/1777508/blog/1791976

eog命令查看图片

不支持在终端/控制台显示图片。使用GUI显示。

fbi命令查看图片

安装:

$ sudo apt-get install fbi

进入控制台(不是终端),可以使用Control-Alt-F1快捷键。

sudo fbi foo.jpg

显示正常的图片,不使用字符代替。

cacaview命令查看图片

安装:

sudo apt-get install caca-utils

在终端下查看图片会打开一个新的窗口,在控制台(console)下直接显示图片。

使用字符显示图片。

picture-tube工具查看图片

使用nodejs编写,只支持png图片。

安装:

$ npm install -g picture-tube

使用: 

项目地址: https://github.com/substack/picture-tube

使用imaging工具查看图片

使用nodejs编写。依赖phantomjs,体积较大。

安装:

npm install imaging -g

使用:

输入图片说明

项目地址: https://github.com/switer/imaging

mplayer命令播放电影

加上-fs参数即可,在控制台下用字符播放电影:laughing:

使用q退出播放。

或者

mplayer -vo caca <movie_file>

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值