実現したいこと
下記プログラム実行時に表示される赤枠の範囲のみの動画を保存したいです。
何卒よろしくお願い申し上げます。
該当のソースコード
Python
1# -*- coding: utf-8 -*- 2import cv2 3 4cap = cv2.VideoCapture(0) # カメラID 5cap.set(cv2.CAP_PROP_FPS, 30) 6fps = int(cap.get(cv2.CAP_PROP_FPS)) 7 8while(True): 9 ret, frame = cap.read() 10 cv2.rectangle(frame, (200, 200), (400, 400), color=(0,0,255), thickness=4) # ガイド表示 11 cv2.imshow('frame',frame) 12 if cv2.waitKey(1) & 0xFF == ord('s'): # sキーで撮影スタート 13 break 14 15#撮影 16fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') #動画保存時の形式 17file_path = "C:/crypt/hoge.mp4" 18video = cv2.VideoWriter(file_path, fourcc, fps, (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))) 19roop = int(fps * 5) # 5秒 20for i in range(roop): 21 ret, frame = cap.read() 22 video.write(frame) 23 cv2.rectangle(frame, (200, 200), (400, 400), color=(0,0,255), thickness=4) 24 cv2.imshow('frame', frame) 25 cv2.waitKey(1) 26video.release() 27cap.release() 28cv2.destroyAllWindows()
追記事項
下記コメントの通り、frame[x1:x2, y1:y2]
のように範囲を指定してvideo.write()の引数に充てた場合、動画ファイルが正しく出力されません。
cv2.imwrite()による連番画像生成→連番画像から動画作成のような工程を経ずに直接動画を作成する手法がありましたらご教示いただきたく存じます。
回答1件
あなたの回答
tips
プレビュー