teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

ソースの修正

2018/05/02 04:04

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -6,20 +6,34 @@
6
6
  cap.read()
7
7
  continue
8
8
 
9
- _, image = cap.read()
9
+ ret, image = cap.read()
10
+ if not ret:
11
+ break
12
+
10
13
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
11
14
  ```
12
15
 
16
+ 空読み部分は次のように書いても可。
17
+ ```Python
18
+ for _ in range(fps):
19
+ cap.read()
20
+ ```
21
+
13
22
  あるいは
14
23
  ---
15
24
  プロパティ`CAP_PROP_POS_MSEC`を書き換えても良さそう。
16
25
  ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。
17
26
  ```Python
27
+ now_pos = 0
18
28
  for i in range(5):
29
+ now_pos += 1000
19
30
  cap.set(
20
- cv2.CAP_PROP_POS_MSEC,
31
+ cv2.CAP_PROP_POS_MSEC, now_pos
21
- cap.get(cv2.CAP_PROP_POS_MSEC) + 1000
22
32
  )
33
+
23
- _, frame = cap.read()
34
+ ret, frame = cap.read()
35
+ if not ret:
36
+ break
37
+
24
38
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
25
39
  ```

2

追記

2018/05/02 04:04

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -10,6 +10,16 @@
10
10
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
11
11
  ```
12
12
 
13
+ あるいは
13
14
  ---
14
15
  プロパティ`CAP_PROP_POS_MSEC`を書き換えても良さそう。
15
- ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。
16
+ ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。
17
+ ```Python
18
+ for i in range(5):
19
+ cap.set(
20
+ cv2.CAP_PROP_POS_MSEC,
21
+ cap.get(cv2.CAP_PROP_POS_MSEC) + 1000
22
+ )
23
+ _, frame = cap.read()
24
+ cv2.imwrite(f'{dir_name}/{i}.png', frame)
25
+ ```

1

追記

2018/05/02 03:59

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -8,4 +8,8 @@
8
8
 
9
9
  _, image = cap.read()
10
10
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
11
- ```
11
+ ```
12
+
13
+ ---
14
+ プロパティ`CAP_PROP_POS_MSEC`を書き換えても良さそう。
15
+ ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。