回答編集履歴

2

タイムアウト修正

2019/07/12 15:58

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -64,11 +64,13 @@
64
64
 
65
65
  endtime = time.time()
66
66
 
67
- if (endtime - starttime) * 1000 < wait:
67
+ elapse = int((endtime - starttime) * 1000)
68
+
69
+ if elapse < wait:
68
70
 
69
71
  # 他のキーで抜けてきた場合はタイムアウト時間を補正
70
72
 
71
- wait -= (endtime - starttime) * 1000
73
+ wait -= elapse
72
74
 
73
75
  else:
74
76
 

1

タイムアウト修正

2019/07/12 15:58

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -27,3 +27,59 @@
27
27
  ```
28
28
 
29
29
  とすればよいのでは?
30
+
31
+
32
+
33
+ (追記)
34
+
35
+ 上記だとq以外のキーを押すと指定時間経過前に次の撮影をしてしまいますね。
36
+
37
+ 他のキーを押された場合は指定時間経過まで待つなら、
38
+
39
+ ```Python
40
+
41
+ import time
42
+
43
+ ```
44
+
45
+ を追加して
46
+
47
+ ```Python
48
+
49
+ starttime = time.time()
50
+
51
+ wait = delay
52
+
53
+ while True:
54
+
55
+ ret, frame = cap.read()
56
+
57
+ cv2.imshow(window_name, frame)
58
+
59
+ key = cv2.waitKey(wait) & 0xFF
60
+
61
+ if key == ord('q'):
62
+
63
+ break
64
+
65
+ endtime = time.time()
66
+
67
+ if (endtime - starttime) * 1000 < wait:
68
+
69
+ # 他のキーで抜けてきた場合はタイムアウト時間を補正
70
+
71
+ wait -= (endtime - starttime) * 1000
72
+
73
+ else:
74
+
75
+ cv2.imwrite('{}_{}.{}'.format(base_path, n, ext), frame)
76
+
77
+ n += 1
78
+
79
+ starttime = time.time()
80
+
81
+ wait = delay
82
+
83
+ ```
84
+
85
+ といったところでしょうか。