回答編集履歴

3

ソースの修正

2018/05/02 04:04

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -14,9 +14,27 @@
14
14
 
15
15
 
16
16
 
17
- _, image = cap.read()
17
+ ret, image = cap.read()
18
+
19
+ if not ret:
20
+
21
+ break
22
+
23
+
18
24
 
19
25
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
26
+
27
+ ```
28
+
29
+
30
+
31
+ 空読み部分は次のように書いても可。
32
+
33
+ ```Python
34
+
35
+ for _ in range(fps):
36
+
37
+ cap.read()
20
38
 
21
39
  ```
22
40
 
@@ -32,17 +50,27 @@
32
50
 
33
51
  ```Python
34
52
 
53
+ now_pos = 0
54
+
35
55
  for i in range(5):
56
+
57
+ now_pos += 1000
36
58
 
37
59
  cap.set(
38
60
 
39
- cv2.CAP_PROP_POS_MSEC,
61
+ cv2.CAP_PROP_POS_MSEC, now_pos
40
-
41
- cap.get(cv2.CAP_PROP_POS_MSEC) + 1000
42
62
 
43
63
  )
44
64
 
65
+
66
+
45
- _, frame = cap.read()
67
+ ret, frame = cap.read()
68
+
69
+ if not ret:
70
+
71
+ break
72
+
73
+
46
74
 
47
75
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
48
76
 

2

追記

2018/05/02 04:04

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -22,8 +22,28 @@
22
22
 
23
23
 
24
24
 
25
+ あるいは
26
+
25
27
  ---
26
28
 
27
29
  プロパティ`CAP_PROP_POS_MSEC`を書き換えても良さそう。
28
30
 
29
31
  ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。
32
+
33
+ ```Python
34
+
35
+ for i in range(5):
36
+
37
+ cap.set(
38
+
39
+ cv2.CAP_PROP_POS_MSEC,
40
+
41
+ cap.get(cv2.CAP_PROP_POS_MSEC) + 1000
42
+
43
+ )
44
+
45
+ _, frame = cap.read()
46
+
47
+ cv2.imwrite(f'{dir_name}/{i}.png', frame)
48
+
49
+ ```

1

追記

2018/05/02 03:59

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -19,3 +19,11 @@
19
19
  cv2.imwrite(f'{dir_name}/{i}.png', frame)
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ ---
26
+
27
+ プロパティ`CAP_PROP_POS_MSEC`を書き換えても良さそう。
28
+
29
+ ですが、OpenCVのプロパティが無視される環境があるので、なんとなく避けちゃいますね。