Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

パソコンの内蔵カメラで動画を撮る

 パソコンの内蔵カメラで動画を撮ります。OpenCVの cv2.VideoCapture で引数に動画ファイル名を指定した場合は、動画ファイルが開かれビデオキャプチャーオブジェクトに入力されますが、デバイス番号でカメラを指定すると、ビデオキャプチャーオブジェクトにカメラの画像が入力されます。デバイス番号は内蔵カメラの場合0、増設したUSBカメラは1,2・・・のように指定します。

環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 6.4.6
  • Python 3.8.12
  • OpenCV 4.5.5
コード

 実行すると内蔵カメラから5秒間画像を取り込み、動画ファイルに保存されます。動画のサイズ・レート(fps)はカメラから取得し、その値を用いています。ファイル名は撮影時の時刻を設定しています。      

import datetime
import cv2

# 撮影時間
length = 5

# 現在時刻の文字列を取得
now = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')

# 内蔵カメラをビデオキャプチャーオブジェクトに設定
cap = cv2.VideoCapture(0)

# カメラのFPS、幅、高さ取得
fps = cap.get(cv2.CAP_PROP_FPS)
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 保存用動画ファイルのフォーマット設定
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') 
out = cv2.VideoWriter(now+'.mp4', fourcc, fps, (w, h)) 

# 撮影時間(秒) X フレームレートの回数画面取得し
# ビデオライターオブジェクトに記録
for i in range(int(length*fps)):
    ret, frame = cap.read()
    out.write(frame)

# キャプチャーオブジェクトのリリース    
cap.release()
# ビデオライターオブジェクトのリリース    
out.release()     
実行結果

内蔵カメラで5秒間録画されたmp4ファイルが保存されます。

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村