私は初心者ですが、pythonでもopencvでもあります。私はopencvのビデオキャプチャ機能で一定の間隔のビデオを撮りたいと思っています.10秒と言うと、システムはある時間スリープモードに移行します.6秒間、10秒間のビデオが撮影されます。ビデオは別ファイルに保存してください。私の問題は、私は最初のビデオを保存する最初の機能を呼び出すときに、ビデオ2機能の呼び出しでコードの悪い配置のためにvideo.sorryを保存しないということです。私はそう新しいユーザーです。いくつかの時間間隔の後にopencvでビデオを撮る
import cv2
import time
def delay(delay_time):
timeout = delay_time # [seconds]
timeout_start = time.time()
print(time.strftime("%c"))
while time.time() < timeout_start + timeout:
test = 0
if test == 3:
break
test -= 1
print(time.strftime("%c"))
def video1():
cap = cv2.VideoCapture(0)
if (cap.isOpened() == False):
print("Unable to read camera feed")
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
out = cv2.VideoWriter('Data/output1.avi',
cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10, (frame_width, frame_height))
while time.time() < time_start + closing_time:
ret, frame = cap.read()
if ret == True:
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
def video2():
cap = cv2.VideoCapture(0)
if (cap.isOpened() == False):
print("Unable to read camera feed")
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
out = cv2.VideoWriter('Data/output2.avi',
cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 10, (frame_width, frame_height))
while time.time() < time_start + closing_time:
ret, frame = cap.read()
if ret == True:
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
cv2.destroyAllWindows()
print(time.strftime("%c"))
video1()
delay(6)
print(time.strftime("%c"))
video2()
多くの分析なしで:一定の出力ファイルがあります。もちろん、複数の出力ファイルは表示されません。ループでは異なるファイル名を使用する必要があります(おそらくリファクタリングでファイルハンドラを作成する場所)。ビデオが正常に開きますが、2番目のファイルは最初のビデオが正常に開いたフォルダ内に表示されますが、オープニングで言いますが、すべてのコメントを削除するようにコードを変更してくださいストリーム – sascha
最初のビデオファイルと2番目のビデオファイルの保存の違い。また、両方の関数video1、video2はビデオを保存するのと同じアクションを実行しますか? –
を分離することはできませんし、我々があるかどうかを確認することができますvideos.first私は2を保存するための2つの機能を持っている –