アフィリエイト広告を利用しています

広告

posted by fanblog

2016年02月29日

python備忘録15(pythonとopencvによる録画プログラム)

インターバル撮影については

たくさんの公開プログラムから拾うことができますが、

インターバル動画撮影については

ありません。

そこで、自分でつくってみました。

まずは、プログラムを開始すると

10秒間録画するプログラムを以下にpythonで作成しました。

動作環境はUbuntu14.04LTSです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2
import sys
import os
from time import time

# CV_FOURCC('D','I','B',' ') = 無圧縮
# CV_FOURCC('P','I','M','1') = MPEG-1 codec
# CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)
# CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
# CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
# CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
# CV_FOURCC('U', '2', '6', '3') = H263 codec
# CV_FOURCC('I', '2', '6', '3') = H263I codec
# CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec

#時間を取得
d=datetime.datetime.now().isoformat()
filerename=str(d)+'.avi'

cameraCapture = cv2.VideoCapture(0)
fps = 30
size = (int(cameraCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),
int(cameraCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
videoWriter = cv2.VideoWriter('output.avi', cv2.cv.CV_FOURCC('D', 'I', 'V', 'X'), fps, size)


start=time()
while (cameraCapture.isOpened()):
  ret, frame = cameraCapture.read()

if ret == True:

# 画面表示
cv2.imshow('frame', frame)

# 圧縮
frame = cv2.resize(frame, (640, 480))

# 書き込み
videoWriter.write(frame)

# キー待ち
if cv2.waitKey(1) & 0xFF == ord('q'):
break

end=time()
if end-start >= 10:
break
else:
break
os.rename('output.avi','%s'%(filerename))

# 後処理
cameraCapture.release()
videoWriter.release()
cv2.destroyAllWindows()



一応、十秒間の録画後に、ファイル名を開始時間に改名する内容です。

あとは、crontabを用いて、必要とする時間にプログラムを起動するように

設定することで、

例) 朝6時から夕方6時まで、毎時10分間の録画を毎日繰り返すという設定も可能です。

このプログラムを作ろうと思った切っ掛けは、

こちらのHPです。外国人のアイデアはユニークだなー^^。


posted by リサイクル夏夏 at 21:15| python
検索
プロフィール
リサイクル夏夏さんの画像
リサイクル夏夏
仕事一筋の人生もいいけれど、趣味がたくさんある人生も素敵だよね。
プロフィール

私が見た動画紹介コーナー

イントロが素敵です

リンク集
<< 2024年06月 >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
カテゴリアーカイブ
写真ギャラリー
最新コメント
×

この広告は30日以上新しい記事の更新がないブログに表示されております。