前言

原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正。

本文使用markdown写成,为获得更好的阅读体验,可以访问我的博客。

1、unboxing & comparison

包装比较简单,里面附送了一个圆形的白片片,不知道干啥的,以前的1代木有,猜测是拧啥东西或者聚光的?

这是树莓派出的第二代摄像头,这里和1代进行下对比:

名称 Camera v1.3 Camera v2.1
发布时间 2013 2016
像素 500w 800w
感光芯片 OV5647 Sony IMX219
静态图片分辨率 2592 × 1944 3280 × 2464
视频录像 支持1080p30, 720p60以及640×480p60/90视频录像 支持1080p 30fps, 720p 60以及640×480p 90视频录像,1280×720p?
尺寸 25mm × 24mm × 9mm 25mm × 24mm × 9mm
摄像头参数 CCD尺寸:1/4英寸;光圈(F):2.9;焦距: 3.60 mm +/- 0.01 CCD尺寸:1/4英寸;光圈(F):2.0;焦距:3.04mm;视场角(FOV):73.8度
固定焦点 1米到无限远 ——
外观

(以上数据及图像部分出自微雪电子)更详细的参数对比可以移步RPi Camera官方介绍,其他介绍评测可以看这里:Raspberry Pi updates camera board with 8MP Sony IMX219 sensor

大家都知道索尼大法好,当然这个OV也很有名: Omnivision,中文名豪威科技,成立于1995,位于美国硅谷,专业开发高度集成CMOS影像技术。我们可以看到,新版的摄像头像素更高,但实际用起来不舒服。

2、失焦问题

刚接上摄像头测试的时候,发现新版摄像头拍出来的模糊一片,放狗一搜发现很多人都遇到这种问题,主要就是1代摄像头的固定焦点是1m~无限远,2代不是,所以附送了调焦轮。。。

Apparently v2 cameras were set at like 2m focus, instead of infinity focus like the v1.3 and v2.1 camera models.

If it looks rather blurry, check that you remembered to peel the

protective plastic from the Camera Module’s lens!

理论上这东西支持自动调焦,就像1代那样用起来很舒服。而这货需要手动调焦,性能参数上去了,但是使用体验较差。

3、基本用法

官方MagPi杂志提供了专门一期介绍Pi Camera的用法,从这里下载PDF文件。

安装的话就是注意别插反了,看一下金手指一般就ok了,另外对于RPi Zero需要购买转接线,我是在1688上这家买的:

硬件安装和系统启用摄像头(raspi-config)这里我们不再赘述(另外2代没有Camera LED),先玩点简单的:

  1. 拍摄照片

    • 拍张照片raspistill -o firstpic.jpg,下载或者直接双击打开即可看到。没调镜头的话会非常模糊。
    • 延时拍摄raspistill -t 15000 -o newpic.jpg,按下回车后15s自动拍照
    • 角度翻转倒置:-vf 水平翻转,-hf垂直翻转,-rot旋转角度90~270
  2. 视频录制
    • raspivid -t 10000 -o testvideo.h264 使用默认参数(分辨率 1920 × 1080)录制10s
    • raspivid -w 640 -h 480 -fps 90 -t 10000 -o test90fps.h264手动指定参数,降低分辨率提高帧数,使得图像看起来更平滑,一般电影24fps肉眼就不太能看出卡顿了。
  3. 其他功能
    • 预览模式: -p x coordinate, y coordinate, width, and height,如 -p 100,100,300,200
    • 相机控制选项:亮度-br、对比度-co、ISO -iso等
    • 快门模式-t 设置延迟,-k则可以按下回车键拍照,按X键则退出,此模式下使用%04d可以生成图像序列,如raspistill -o keypress%04d.jpg -k,这在下文的长时间延时拍摄(Time Lapses)过程中有用
    • 图像滤镜:-drc、-cfx等
    • 图像输出格式raspistill -o image.jpg –q 100默认输出jpg,-q设置图像质量;raspistill -o image.png –e png设置编码输出为png格式。

4、项目α—延时摄影Time Lapse:长时压缩

长时间定时定格延时拍摄。亦称低速摄影或定时定格摄影、“缩时”摄影。定时、间断记录并以明显变化的影像再现景物缓慢变化过程的手段。

——可以关注Time Lapse 中国

举个直观的例子:

我们的目标是拍摄序列照片,然后转换成视频,最后通过网页呈现出来。

  1. # 连续拍摄图片3h,间隔10s拍摄一次,编号从0000开始由四位数字组成,&代表后台运行
  2. sudo raspistill -w 1920 -h 1080 -t 10800000 -tl 10000 -o frame%04d.jpg &
  3. # 在高性能主机上安装libav,一个FFmpeg的分支,处理图像
  4. sudo apt-get install libav-tools
  5. # 下载图片到处理主机,如`wget -r -A jpg path`,然后使用Libav合并成视频,默认帧率25fps,如此会将上述3h的图片合并为~40s的视频。关于crf值可以搜索了解一下。整个过程会比较长,或许用一台专业的工作站会好些
  6. sudo avconv -i frame%04d.jpg -crf 4 -b:v 10M video.webm &

最后就是拍了我夜里睡觉的3小时图像(用的夜视摄像头),发现自己晚上睡觉还是比较老实的。后续会拍白天天空云彩的视频,有机会放上来。

5、项目β——高速摄影:短时分解

我们时常可以看到电影里某些镜头长时回放,令人震撼,一般需要高速摄像头录下来之后再以慢帧率播放,一般的电影胶片采用24fps,普通视频则为25~29fps之间,在此帧率下人眼感觉不到明显的停滞感,所以例如你以50fps拍摄然后25fps播放时,就可以看到慢动作回放。目前RPi Camera支持最大90fps录制,但是高速拍摄会牺牲分辨率,所以1代使用90fps录制时最大支持640×480,2代支持1280×720。

  1. raspivid -n -w 640 -h 480 -fps 60 -t 5000 -o test.h264
  2. raspivid -w 640 -h 480 -fps 90 -t 7000 -o myvid1.h264

这里我们可以拍摄碰撞、水滴、破碎(鸡蛋、气球)等一些高速动作,然后用其他支持指定帧率播放的Video Player查看,例如VLC在视图里打开高级控制可以看到逐帧播放按钮。

6、 借力Micro:bit之蓝牙版RPi自拍照相机

先占个坑,后面补上来。

RPi Cam v2 之一:基础及牛刀小试的更多相关文章

  1. java基础学习周计划之1--语言基础

    JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...

  2. 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2

    from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ...

  3. Java基础学习总结(53)——HTTPS 理论详解与实践

    前言 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题.在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用户 ...

  4. MobileNetV1/V2/V3简述 | 轻量级网络

    MobileNet系列很重要的轻量级网络家族,出自谷歌,MobileNetV1使用深度可分离卷积来构建轻量级网络,MobileNetV2提出创新的inverted residual with line ...

  5. 树莓派 Zero作为飞控图传

    前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的链接.图片显示,请访问我的博客原文: http://www.cnblog ...

  6. HTTPS科普扫盲帖

    为什么需要https HTTP是明文传输的,也就意味着,介于发送端.接收端中间的任意节点都可以知道你们传输的内容是什么.这些节点可能是路由器.代理等. 举个最常见的例子,用户登陆.用户输入账号,密码, ...

  7. SNMP 原理与实战详解

    原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...

  8. PKI系统深入介绍

    公钥基础设施(Public Key Infrastructure,简称PKI)是目前网络安全建设的基础与核心,是电子商务安全实施的基本保障,因 此,对PKI技术的研究和开发成为目前信息安全领域的热点. ...

  9. android技巧(四)数据库跨版本升级写法

    当项目中接手的需求需要在就前数据库数据表做出修改时,不得不面对数据库表结构的更新问题.一般的sqlite数据库更新修改数据库版本号时都会自动调用SqliteOptenHelper及其子类中的onUpg ...

随机推荐

  1. IIS是怎么处理同时到来的多个请求的?

        假设有一台服务器,它的IIS上部署有一个Web应用程序-S,可以通过浏览器或其他方式进行访问.     假设有A.B.C三台电脑同时访问网站S,IIS接收到3个HTTP请求,然后分别为三个请求 ...

  2. 笔记 docker入门笔记

    安装sudo apt-get remove docker docker-engine docker-ce docker.iosudo apt-get updatesudo apt-get instal ...

  3. http2新特性

    1.二进制分帧   http1.x是文本格式传输,http2二进制格式传输,并且被切分未过个帧发送,帧可以根据头部流标识重新组装.   2. 单一长连接   同一个域名使用一个TCP连接,(http1 ...

  4. Twitter如何在数千台服务器上快速部署代码?

    答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable arch ...

  5. JavaScript 笔记(7) -- 在HTML中嵌入 js (外部引用)

    本节主要说明,在HTML中嵌入自定义 JavaScript.通过HTML的script标签加载JavaScript文件 为防止网页加载缓慢,也可以把非关键的JavaScript放到网页底部,例如下面的 ...

  6. The OAuth 2.0 Authorization Framework

      The OAuth 2.0 Authorization Framework Abstract The OAuth 2.0 authorization framework enables a thi ...

  7. EclEmma Java Code Coverage for Eclipse

      1. 1EclEmma的介绍 一.EclEmma 简介: EclEmma是一个开源的软件测试工具(for eclipse),可以在编码过程中查看代码调用情况.也可以检测单覆盖率. 详见: http ...

  8. PAT 天梯赛 L1-043 阅览室

    L1-043. 阅览室 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者 ...

  9. rpm包安装mysql5.6.*版本

    1.查看是否已经安装Mysql rpm -qa | grep -i mysql #删除已经安装的Mysql程序 rpm -ev *****.rpm 2.检查是否还有残留mysql文件夹 find / ...

  10. 【CF1015E】Stars Drawing(贪心)

    题意:给定一个n×m大小的字符矩阵,仅由‘.’和‘*’组成,询问这个图可否划分为一些由‘*’组成的十字形状,这些十字之间可以有重叠, 如果存在方案则输出每个十字中心坐标与边长度,无解输出-1 n,m& ...