-
Notifications
You must be signed in to change notification settings - Fork 0
/
CutFivesec.py
41 lines (33 loc) · 1.32 KB
/
CutFivesec.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import cv2
import numpy as np
#################################################################
# 入力:動画のパス
# 動画をグレースケールかつ200*200にリサイズして
# 動画の最後から150フレームとることにより、
# [N, 150, 200, 200]となるデータセットを作成し、npy形式で保存する
#################################################################
# (おそらく5秒 = 150フレーム)
def OneVideoCut(path):
# ビデオ読み込み
cap = cv2.VideoCapture(path)
one_video = []
print(path)
while True:
# 1フレーム分読み込み
ret, frame = cap.read()
if ret:
# グレースケールに変換
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 200*200にリサイズ
gray = cv2.resize(gray, (200, 200))
# one_videoに1フレームずつappend
one_video.append(gray)
else:
break
return one_video[-150:]
def CutFivesec(paths, trans_dir_path, filename):
#videosに150フレームの動画たちを保存
videos = np.array([OneVideoCut(path) for path in paths])
print(videos.shape)
#[N, 150, 200, 200]の動画データセットを一つのnpyファイルにして保存
np.save(trans_dir_path + "/" + filename, videos)