質問編集履歴

1

質問を簡潔にしました。

2019/11/29 01:02

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -20,160 +20,10 @@
20
20
 
21
21
 
22
22
 
23
- プログラムを繰り返し実行していると、撮影終了~撮影開始までに約10秒程度の時間がかかってしまいます。
23
+ プログラムを繰り返し実行していると、撮影終了~撮影開始までに秒程度の時間がかかってしまいます。
24
24
 
25
- つまり、この10秒間は撮影されていない区間となってしまうので、困っています。
25
+ つまり、この秒間は撮影されていない区間となってしまうので、困っています。
26
-
27
-
28
-
29
- 検知前と検知後の動画両方を保存できると思い、↓のプログラムを作成したのですが、
30
-
31
- この撮影されない時間(約10秒)の対応に困っています。
32
26
 
33
27
 
34
28
 
35
29
  何か解決するためのアイデアがありましたら、教えていただけると助かります。
36
-
37
-
38
-
39
-
40
-
41
- ##プログラムコード
42
-
43
- ```python
44
-
45
- def movie():
46
-
47
- cap = cv2.VideoCapture(0)
48
-
49
- width = 640
50
-
51
- height = 480
52
-
53
- now = datetime.now()
54
-
55
- #検知後 動画ファイル
56
-
57
- filename_a = '/home/pi/dev/data/Recorder/' + now.strftime('%Y%m%d_%H%M%S') + '_after.mp4'
58
-
59
- #検知前 動画ファイル
60
-
61
- filename_b = '/home/pi/dev/data/Recorder/' + now.strftime('%Y%m%d_%H%M%S') + '_before.mp4'
62
-
63
- fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # ファイル形式(ここではmp4)
64
-
65
-
66
-
67
- #動画撮影開始
68
-
69
- GPIO.output(19, GPIO.HIGH)
70
-
71
- sleep(0.5)
72
-
73
- GPIO.output(19, GPIO.LOW)
74
-
75
- sleep(0.5)
76
-
77
-
78
-
79
- if eline.iloc[0][5]>=25.0:
80
-
81
- os.rename ('/home/pi/dev/data/Recorder/Monitoring....mp4', filename_b)
82
-
83
- writer1 = cv2.VideoWriter(filename_a, fmt ,25, (width, height))
84
-
85
- read_count()
86
-
87
- y_sum = y_bool.sum()
88
-
89
- prev_y_sum = y_bool.sum()
90
-
91
-
92
-
93
- while True:
94
-
95
- ret, frame = cap.read()
96
-
97
- writer1.write(frame)
98
-
99
- #GPIO.output(19, GPIO.HIGH)
100
-
101
- #sleep(1.0)
102
-
103
- #GPIO.output(19, GPIO.LOW)
104
-
105
- #sleep(1.0)
106
-
107
- read_count()
108
-
109
- y_sum = y_bool.sum()
110
-
111
- #print ('prev=' + str(prev_y_sum))
112
-
113
- #print ('current=' + str(y_sum))
114
-
115
- if y_sum != prev_y_sum:
116
-
117
- GPIO.output(13, GPIO.HIGH)
118
-
119
- sleep(0.25)
120
-
121
- GPIO.output(13, GPIO.LOW)
122
-
123
- sleep(0.25)
124
-
125
- writer1.release()
126
-
127
- #動画ファイルをコピー
128
-
129
- shutil.copy (filename_a, '/home/pi/dev/data/Recorder/Monitoring....mp4')
130
-
131
- break
132
-
133
- else:
134
-
135
- writer2 = cv2.VideoWriter('/home/pi/dev/data/Recorder/Monitoring....mp4', fmt ,25, (width, height))
136
-
137
- read_count()
138
-
139
- y_sum = y_bool.sum()
140
-
141
- prev_y_sum = y_bool.sum()
142
-
143
- while True:
144
-
145
- ret, frame = cap.read()
146
-
147
- writer2.write(frame)
148
-
149
- #end_time = datetime.now()
150
-
151
- #diff = end_time - start_time
152
-
153
- #print (diff)
154
-
155
- read_count()
156
-
157
- y_sum = y_bool.sum()
158
-
159
- #print ('prev=' + str(prev_y_sum))
160
-
161
- #print ('current=' + str(y_sum))
162
-
163
- if y_sum != prev_y_sum:
164
-
165
- GPIO.output(13, GPIO.HIGH)
166
-
167
- sleep(0.25)
168
-
169
- GPIO.output(13, GPIO.LOW)
170
-
171
- sleep(0.25)
172
-
173
- writer2.release()
174
-
175
- break
176
-
177
- cap.release()
178
-
179
- ```