加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python中使用摄像头实现简单的延时摄影技术

发布时间:2020-12-17 07:26:44 所属栏目:Python 来源:网络整理
导读:延时摄影(英语:Time-lapse photography)是以一种较低的帧率拍 下图像或者视频,然后用正常或者较快的速率播放画面的摄影技术。在一段延时摄影视频中,物体或者景物缓慢变化的过程被压缩到一个较短的时间内,呈现出平时 用肉眼无法察觉的奇异精彩的景象。

延时摄影(英语:Time-lapse photography)是以一种较低的帧率拍 下图像或者视频,然后用正常或者较快的速率播放画面的摄影技术。在一段延时摄影视频中,物体或者景物缓慢变化的过程被压缩到一个较短的时间内,呈现出平时 用肉眼无法察觉的奇异精彩的景象。延时摄影可以认为是和高速摄影相反的一个过程。延时摄影通常应用在拍摄城市风光、自然风景、天文现象、生物演变等等题材上。”

种草

最近买东西得了个小赠品,是一种可以快速生长的小草,拿回来就种在了办公桌上。今天发芽了,一时兴起打算做个延时摄影,办公室里正好有个非常老旧的640x480摄像头,于是有了下面的这个延时摄影动图(为了上传压缩了画面大小):

实现


需要准备的:

1) 电脑
2) 摄像头(如果电脑没有的话),淘宝上好多20以下包邮
3) Python 2.7,因为需要使用opencv,所以用Python2
4) opencv的Python binding,去官网上下载,如果不想自己编译,只要到buildpython2.7下面就可以找到32位和64位的cv2.pyd,把这个文件直接拷贝到Python27Libsite-packages即可

代码如下:

import cv2
import time

interval = 20  # seconds
num_frames = 500
out_fps = 24

capture = cv2.VideoCapture(0)
size =(int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),int(capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
video = cv2.VideoWriter("time_lapse.avi",cv2.cv.CV_FOURCC('I','4','2','0'),out_fps,size)

# for low quality webcams,discard the starting unstable frames
for i in xrange(42):
  capture.read()

# capture frames to video
for i in xrange(num_frames):
  _,frame = capture.read()
  video.write(frame)

  ## Optional,in case you need the frames for GIF or so
  filename = '{:4}.png'.format(i).replace(' ','0')
  cv2.imwrite(filename,frame)

  print('Frame {} is captured.'.format(i))
  time.sleep(interval)

video.release()
capture.release()



既然是简单的延时摄影,代码也是非常简单的。设定好拍摄间隔,总帧数和输出的帧率,用VideoCapture获取摄像头的图像,用VideoWriter写入视频,考虑到有些劣质摄像头在初始化的时候不稳定(比如我用的这个老式摄像头),在正式捕捉图向前可以考虑略过初始的几十帧,捕捉过程中也可以直接输出图片方便制作GIF或者其他用途。

最后再来一个铁皮盒上水滴蒸发的全过程:

您可能感兴趣的文章:

  • Python设置Socket代理及实现远程摄像头控制的例子
  • python操作摄像头截图实现远程监控的例子
  • python定时采集摄像头图像上传ftp服务器功能实现
  • python结合opencv实现人脸检测与跟踪
  • Python 40行代码实现人脸识别功能
  • python中使用OpenCV进行人脸检测的例子
  • python使用opencv进行人脸识别
  • python实现人脸识别代码
  • python+opencv实现的简单人脸识别代码示例
  • python 3利用Dlib 19.7实现摄像头人脸检测特征点标定

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读