7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

キャプチャボードからの入力映像を画像で保存

Last updated at Posted at 2020-03-22

はじめに

キャプチャボードからの入力映像を定期的に画像として保存するスクリプトです。
ゲーム映像(Nitendo Switch)のスクショを定期的に取得したかったので作成しました。

SnapCrab_NoName_2020-3-22_18-44-35_No-00.png

環境

  • Windows 10
  • Python 3.7
  • GC550 PLUS(キャプチャボード)

スクリプト概要

  • OpenCVでキャプチャボードからの映像を取得

  • 1秒おきにキャプチャ画像を取得

 -> キャプチャしたい動画のfpsは 60なので、 count が60の倍数のときに画像を保存

  • 取得したフレームをHDサイズにリサイズして保存

 -> 今回のケース(Siwtch)はFull HDで映像が出力されますが、HDのキャプチャ画像が欲しかったため

スクリプト概要

capture.py
import cv2
import datetime

# VideoCapture オブジェクトを取得
# キャプボの他にWebカメラなど接続している場合は他の数字を指定する必要があるかも
capture = cv2.VideoCapture(0)
print(capture.isOpened())
capture.set(3, 1920)
capture.set(4, 1080)

count = 0
while(True):
    ret, frame = capture.read()
    cv2.imshow('frame', frame)
    count += 1
    print(count)
    if count % 60 == 0:
        dt_now = datetime.datetime.now()
        # 1280 * 720のキャプチャ画像に変換、保存
        resized = cv2.resize(frame, (1280, 720))
        # 所定のフォルダにjpgで保存
        cv2.imwrite('H:/capture/'+ dt_now.strftime('%Y%m%d-%H%M%S')+'.jpg', resized)

    # "q"キー または ctrl + C でキャプチャ停止
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?