用树莓派做相机,制作定格动画视频

时间:2024-10-04 10:35:31

树莓派加上摄像头可用来做监视器(防盗),自拍,拍视频等等,只要不用来做坏事,想干啥干啥,哈哈哈。

本期我们使用Raspberry Pi,Python和相机模块制作您自己的定格动画视频,通过连接到Pi的GPIO引脚的按钮进行控制。

1.硬件准备

a.树莓派(Raspberry Pi)一个
b.相机板一个
c.杜邦线
d.面包板
e.按钮一个

2.连接相机
在启动Pi之前,您需要连接相机。

image

  1. 找到以太网端口旁边的摄像头端口。抬起顶部的标签。

  2. 将条带放入连接器,蓝色侧面朝向以太网端口。在将条带固定到位的同时,向下推动卡舌。

  3. 打开电源以启动树莓派。

完成以后测试是否连接好,打开终端窗口,输入命令:

raspistill -k
  • 1

您应该会在屏幕上看到预览。如果图片是倒置的并不重要; 您可以稍后配置。按Ctrl + C退出预览。

运行该命令(ls)以查看主目录中的文件; 你应该看到 列出。

3.用Python拍照

下面来编写Python代码,(大小写很重要!):

#/home/pi/

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(3)
('/home/pi/Desktop/')
camera.stop_preview()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

将以上代码文件存放:/home/pi/   命令行运行代码。

python /home/pi/  
  • 1

这时就可以看到有 image.jpg 保存在桌面上。双击该图标以打开图像,如果图片是颠倒的,可以使用支架重新定位相机,或保持原样并告诉Python翻转图像。请在代码camera.start_preview() 上面添加以下行:

 = 180
  • 1

4.连接硬件按钮

使用面包板和跳线,将Pi连接到按钮,如下图所示:

image

注意GPIO 引脚别接错了

连接完成以后,修改之前写的代码:

from picamera import PiCamera
from time import sleep
from gpiozero import Button

button = Button(17)
camera = PiCamera()

camera.start_preview()
button.wait_for_press()
('/home/pi/Desktop/')
camera.stop_preview()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

保存并运行。预览开始后,按连接到树莓派的按钮来捕获图像。

5.拍自拍照

如果想用相机板拍摄自己的话,可以添加延迟以使你能够进入拍照位置。可以通过修改程序来完成此操作。在代码中添加一行,告诉程序在捕获图像之前暂时休眠,如下所示:

camera.start_preview()
button.wait_for_press()
sleep(3)
('/home/pi/Desktop/')
camera.stop_preview()
  • 1
  • 2
  • 3
  • 4
  • 5

保存并运行。

6.定格动画

现在您已经使用相机成功拍摄了单张照片,现在可以尝试组合一系列静止图像来制作定格动画。注意:必须创建一个新文件夹来存储图像

修改代码以添加循环以在每次按下按钮时继续拍照:

camera.start_preview()
frame = 1
while True:
    try:
        button.wait_for_press()
        ('/home/pi/animation/frame%' % frame)
        frame += 1
    except KeyboardInterrupt:
        camera.stop_preview()
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

保存并运行。然后就可以一直进行拍照了。

7.生成视频

要生成视频,运行视频渲染命令:

avconv -r 10 -i animation/frame% -qscale 2 animation.h264
  • 1

请注意,%03d- 这是Python和avconv理解的常见格式,并且意味着照片将按顺序传递到视频中。

使用播放视频(omxplayer)

omxplayer animation.h264
  • 1

可以通过编辑渲染命令来调整帧速率。尝试将 -r 10(每秒10帧)更改为另一个数字。

还可以更改渲染视频的文件名,阻止它覆盖之前的视频。为此,请更改animation.h264 为其他内容。

这样就做好啦,至于用途嘛,嘿嘿嘿~~自行发挥吧,不要做坏事哦!!!

关注一下,更多精彩,不容错过!

???

image