フレーム番号が特定のタイムスタンプの間にある場合はフレームを 1 として保存し、そうでない場合は 0 として保存したい cv2 を使用してフレームごとにビデオを分析しています。2 つのリストがあります。1 つは開始時刻、もう 1 つは終了時刻です。
start_times = [0, 10, 15]
end_times = [2, 12, 17]
フレーム番号 0,1,2 & 10,11,12 & 15,16,17 のフレームを 1 として保存し、その他のフレームを 0 として保存します。
私のコードは正しいフレームを 1 として保存しますが、for ループを使用しているため、不要なフレームを 0 として保存します。以下の簡単な例を参照してください。
start_times = [0,10,15]
end_times = [2,12,17]
currentframe = 0
while True:
try:
for index,time in enumerate(start_times):
if start_times[index] <= currentframe <= end_times[index]:
print('save images as 1')
else:
print('save images as 0')
currentframe += 1
if currentframe == 20:
break
except IndexError:
break
最初のフレームの出力:
save images as 1
save images as 0
save images as 0
最初のフレームが 1 としてのみ保存されるようにコードを変更するにはどうすればよいですか?