参考资料

Raspberry Pi提供了摄像头模块的接口,用户图像和视频拍摄。以下内容根据官网,总结了一些基本的使用方法。

一、摄像头模块安装

  • 将摄像头排线露出金属的部分背对网孔和usb接口,即另一面的蓝色塑料封皮正对网孔和usb接口
  • 小心地将接线板上的黑色塑料往上拉(请务必保证电源关闭,手指干燥
  • 将排线插入,黑色塑料往下压紧排线
  • 开机,使用sudo raspi-config,选择interfacing opinions,选择Camera,并Enable
  • Finish退出配置
  • 重启

二、使用命令控制摄像头

如果一切顺利的话,就可以使用命令控制摄像头了

  • 拍照---raspistill

    拍摄一张照片,保存在桌面,命名为image.jpg,等待几秒后,桌面就会出现jpg文件
pi@raspberrypi:~ $ raspistill -o Desktop/image.jpg



增加参数,还可以更改图片大小

pi@raspberrypi:~ $ raspistill -o Desktop/image-small.jpg -w 640 -h 480

输入raspistill直接回车可查询raspistill命令其他参数

  • 摄像---raspivid

    最直接的参数 -t设置拍摄时间 -w -h设置分辨率宽和高

    拍摄一段5000毫秒、分辨率为1024x768的视频,保存在桌面,命名为video.h264
pi@raspberrypi:~ $ raspivid -o Desktop/video.h264 -t 5000 -w 1024 -h 768

三、使用Python程序控制摄像头

使用Python程序控制摄像头需要使用PiCamera库

打开Raspberry Pi自带的Thonny Python IDE,新建camera.py文件,文件命名不能用PiCamera.py

  • 预览摄像头画面(仅在接入显示屏幕有效)
from picamera import PiCamera
from time import sleep camera = PiCamera()
# Rotate by 180 degrees when the camera is upside-down
camera.rotation = 180 camera.start_preview(alpha=200) # Make the camera preview see-through by setting an alpha level from 0 to 255
sleep(5)
camera.stop_preview()

上述代码实现打开摄像头预览5秒钟再关闭的功能。但是如果这个程序仅在Raspberry Pi接入了显示器才有效,SSH或是VNC访问是无效的。

  • 照相和录像

    修改上述代码
from picamera import PiCamera
from time import sleep camera = PiCamera()
# Rotate by 180 degrees when the camera is upside-down
camera.rotation = 180 camera.start_preview(alpha=200) # Make the camera preview see-through by setting an alpha level from 0 to 255 sleep(5)
# Take a picture and save as /home/pi/Desktop/image.jpg'
camera.capture('/home/pi/Desktop/image.jpg') # Take 5 pictures every 5 seconds and save as /home/pi/Desktop/image0.jpg' ... image4.jpg
for i in range(5):
sleep(5)
camera.capture('/home/pi/Desktop/image%s.jpg' % i) camera.stop_preview()

在拍照前,最好让摄像头sleep至少2秒,使之能够感光

将capture()改成start_recording()和stop_recording()就可控制摄像头拍摄录像了

  • 更多设置

    PiCamera库提供了很多关于图像和摄像头预览的设置,并且两者是分开的,即一部分只对拍摄的画面有效,另一部分只对预览有效

    • 分辨率 resolution

      图片最大是2592×1944 视频最大是1920×1080,最小是64x64
    • 帧数 framerate
    • 图像中增加文本 annotate_text
    • 图像文本大小 annotate_text_size,范围:6到160,默认32
    • 图像文本颜色 import Color,annotate_background 和 annotate_foreground
    • 摄像头预览亮度修改 brightness,范围:0到100,默认50
    • 摄像头预览对比度 contrast
    • 其他参考
from picamera import PiCamera, Color
from time import sleep camera = PiCamera()
camera.rotation = 180
camera.resolution = (1024, 768)
camera.framerate = 15 camera.start_preview()
camera.brightness = 70
camera.annotate_background = Color('blue')
camera.annotate_foreground = Color('yellow')
camera.annotate_text = "Hello world!"
camera.annotate_text_size = 30
sleep(5)
camera.capture('/home/pi/Camera/pic.jpg')
camera.stop_preview() camera.start_preview()
for i in range(5):
camera.annotate_text = "Brightness: %s" % i
camera.brightness = i*20
sleep(0.1)
camera.capture('/home/pi/Camera/brightness%s.jpg' % i)
camera.stop_preview() camera.start_preview()
for i in range(5):
camera.annotate_text = "Contrast: %s" % i
camera.contrast = i*20
sleep(0.1)
camera.capture('/home/pi/Camera/contrast%s.jpg' % i)
camera.stop_preview()

四、基于vlc的Raspberry Pi摄像头实时监控

参考基于树莓派的专用摄像头实时监控

$ sudo apt-get install vlc  #Raspberry Pi系统自带了
$ #-o - 输出到stdout,-t 0不暂停立即获取流, 640x360,25帧/s,-rot 180画面旋转180度(用了支架摄像头画面倒过来了)
$ sudo raspivid -o - -rot 180 -t 0 -w 480 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264

在与Raspberry Pi在同一局域网内的其他设备上,用vlc打开网络串流 http://Raspberry Pi的ip:8090

就播放看到摄像头的画面了,但是vlc的实施监控存在5s左右的延时,体验并不是很好。

Raspberry Pi 摄像头模块入门的更多相关文章

  1. 常用Raspberry Pi周边传感器的使用教程

    在Raspberry Pi 的使用和开发过程中,你可能时常需要一些硬件和传感器等来支持你的开发工作,例如,加入一个超声波测距的模块来让你的Raspberry Pi具备测距功能,加入一个测温模块以实现测 ...

  2. 常用Raspberry Pi周边传感器的使用教程(转)

    转:http://bbs.xiaomi.cn/thread-7797152-1-1.html 在Raspberry Pi 的使用和开发过程中,你可能时常需要一些硬件和传感器等来支持你的开发工作,例如, ...

  3. Raspberry Pi 4B 使用OpenCV访问摄像头picamera模块

    目录 1.OpenCV安装 (1)安装依赖 (2)下载OpenCV源码 (3)安装pip (4)安装Python虚拟机 (5)编译OpenCV (6)验证安装 2.使用OpenCV和Python控制摄 ...

  4. [Raspberry Pi] 入门使用

    今天开始介绍Raspberry Pi(简称RPi,下同)入门的一些基础知识. 第1部分: 安装RPi 1.1  从 http://www.raspberrypi.org/downloads 下载RPi ...

  5. [树莓派(raspberry pi)] 01、在linux环境下给树莓派安装系统及入门各种资料

    1.预准备 进入帮助页面https://www.raspberrypi.org/help/,可以直接看到GET START WITH PASPBERRY PI,点击进入: 接下来会引导你检查配件是否齐 ...

  6. [树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)

    前言 上一篇我们讲了在linux环境下给树莓派安装系统及入门各种资料 ,今天我们更进一步,尝试在PI3上安装openCV开发环境. 博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教 ...

  7. Raspberry pi(-) Mac下安装系统

    购买树莓派一般的操作说明书都是windows下的,因为本人只有MBP,外加虚拟机Parallels Desktop无法识别SD卡,所以就直接参考Mac教程了. 1.系统镜像官网下载 推荐用Raspbi ...

  8. 用树莓派Raspberry Pi和Micro:bit做一个自拍器

    在这个项目中,我们将使用Python来构建一个由Micro:bit触发树莓派Raspberry Pi和相机模块的自拍器.这是开始使用硬件和简单文本编程的好方法. 我们将学习: 如何设置Raspberr ...

  9. Raspberry Pi使用

    1. 介绍 笔者Raspberry Pi 2 Model B为例介绍 1.1 参数 Raspberry Pi 2 Model B硬件参数如下: · Broadcom BCM2836 900MHz 4核 ...

随机推荐

  1. gin框架初识(先跑一个简单demo) ①

    Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 先跑一个demo(先安装gin框架,具体见官方地址): 1.vs ...

  2. JavaScript--Function对象(函数)的声明和作用域

    Funtion 封装了可重复使用的代码块对象,函数名是一个引用函数对象的变量 声明提前:在程序开始执行之前,将var 变量和function函数提前声明 但赋值并不会提前 它的三种创建方法: 创建1 ...

  3. Twitter Bootstrap:前端框架利器

    Bootstrap 的文件结构 读者可以直接从 GitHub 下载到 Bootstrap 源码,本地解压后可以看到这样的目录结构:docs.img.jquery-ui- bootstrap.js 和 ...

  4. string+DFS leetcode-17.电话号码下的字母组合

    题面 Given a string containing digits from 2-9 inclusive, return all possible letter combinations that ...

  5. Python学习记录8-继承2

    继承 单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类允许继承多个类 >>> class A(): pass >>> class B(A): pass ...

  6. Ubuntu系统---C++之Eclipse 开始工程项目

    Ubuntu系统---C++之Eclipse 开始工程项目 安装完Eclipse,那就像其它项目一样,先要测试一下是否能用. 一.测一个hello world例子二.利用OpenCV测试一个显示图片的 ...

  7. Spring-HelloSpring-IOC创建对象的方式

    3.HelloSpring 思考 Hello 对象是谁创建的 ? [ hello 对象是由Spring创建的 ] Hello 对象的属性是怎么设置的 ? [hello 对象的属性是由Spring容器设 ...

  8. Vue结合后端DjangoFramework的在线生鲜超市(前后端分离)【django2.2+xadmin+ueditor】

    在线博客教程:https://www.cnblogs.com/Eric15/category/1300432.html https://www.cnblogs.com/derek1184405959/ ...

  9. mybatis+mysql批量插入和批量更新

    一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.x ...

  10. 优雅的退出和调用服务器close() 方法

    在开发中,创建这种“友好的”退出方式的一种方法就是,将服务器的 while 循环放在一个 try-except 语句中的 except 子句中,并监控 EOFError 或 KeyboardInter ...