0

フレーム番号が特定のタイムスタンプの間にある場合はフレームを 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 としてのみ保存されるようにコードを変更するにはどうすればよいですか?

4

3 に答える 3