Python中使用攝像頭實(shí)現(xiàn)簡(jiǎn)單的延時(shí)攝影技術(shù)
延時(shí)攝影(英語(yǔ):Time-lapse photography)是以一種較低的幀率拍 下圖像或者視頻,然后用正?;蛘咻^快的速率播放畫面的攝影技術(shù)。在一段延時(shí)攝影視頻中,物體或者景物緩慢變化的過(guò)程被壓縮到一個(gè)較短的時(shí)間內(nèi),呈現(xiàn)出平時(shí) 用肉眼無(wú)法察覺(jué)的奇異精彩的景象。延時(shí)攝影可以認(rèn)為是和高速攝影相反的一個(gè)過(guò)程。延時(shí)攝影通常應(yīng)用在拍攝城市風(fēng)光、自然風(fēng)景、天文現(xiàn)象、生物演變等等題材上?!?/p>
種草
最近買東西得了個(gè)小贈(zèng)品,是一種可以快速生長(zhǎng)的小草,拿回來(lái)就種在了辦公桌上。今天發(fā)芽了,一時(shí)興起打算做個(gè)延時(shí)攝影,辦公室里正好有個(gè)非常老舊的640x480攝像頭,于是有了下面的這個(gè)延時(shí)攝影動(dòng)圖(為了上傳壓縮了畫面大?。?/p>
實(shí)現(xiàn)
需要準(zhǔn)備的:
1) 電腦
2) 攝像頭(如果電腦沒(méi)有的話),淘寶上好多20以下包郵
3) Python 2.7,因?yàn)樾枰褂胦pencv,所以用Python2
4) opencv的Python binding,去官網(wǎng)上下載,如果不想自己編譯,只要到\build\python\2.7\下面就可以找到32位和64位的cv2.pyd,把這個(gè)文件直接拷貝到\Python27\Lib\site-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()
既然是簡(jiǎn)單的延時(shí)攝影,代碼也是非常簡(jiǎn)單的。設(shè)定好拍攝間隔,總幀數(shù)和輸出的幀率,用VideoCapture獲取攝像頭的圖像,用VideoWriter寫入視頻,考慮到有些劣質(zhì)攝像頭在初始化的時(shí)候不穩(wěn)定(比如我用的這個(gè)老式攝像頭),在正式捕捉圖向前可以考慮略過(guò)初始的幾十幀,捕捉過(guò)程中也可以直接輸出圖片方便制作GIF或者其他用途。
最后再來(lái)一個(gè)鐵皮盒上水滴蒸發(fā)的全過(guò)程:
相關(guān)文章
Jupyter Notebook遠(yuǎn)程登錄及密碼設(shè)置操作
今天小編就為大家分享一篇Jupyter Notebook遠(yuǎn)程登錄及密碼設(shè)置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04flask中響應(yīng)錯(cuò)誤的處理及errorhandler的應(yīng)用方式
這篇文章主要介紹了flask中響應(yīng)錯(cuò)誤的處理及errorhandler的應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12pytorch實(shí)現(xiàn)onehot編碼轉(zhuǎn)為普通label標(biāo)簽
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)onehot編碼轉(zhuǎn)為普通label標(biāo)簽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python3.6安裝卸載、執(zhí)行命令、執(zhí)行py文件的方法詳解
這篇文章主要介紹了Python3.6之安裝卸載、執(zhí)行命令、執(zhí)行py文件的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02帶你用Python實(shí)現(xiàn)Saga 分布式事務(wù)的方法
在這篇文章里,我們介紹了 SAGA 的理論知識(shí),也通過(guò)一個(gè)例子,完整給出了編寫一個(gè) SAGA 事務(wù)的過(guò)程,涵蓋了正常成功完成,異常情況,以及成功回滾的情況,需要的朋友參考下吧2021-09-09Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法
這篇文章主要介紹了Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10