@@ -155,14 +155,14 @@ def run(self):
155155
156156count = 0
157157
158- workers = []
159158
160- for i in range (len (cameras )):
161- worker = ImageWorker ()
162- worker .start ()
163- workers .append (worker )
164159
165- count = 0
160+ worker = ImageWorker ()
161+ worker .start ()
162+
163+
164+ images = [None , None , None ]
165+
166166fps_report_frequency = fps * 2
167167start_time = time .time ()
168168
@@ -173,18 +173,36 @@ def run(self):
173173
174174 if count % fps_report_frequency == 0 :
175175 fps = fps_report_frequency / (time .time () - start_time ) # / fps_report_frequency
176- print ("fps {:.3f} image count {}, in buffer {}" .format (fps , count ,workers [ 0 ] .images .qsize () ))
176+ print ("fps {:.3f} image count {}, in buffer {}" .format (fps , count ,worker .images .qsize () ))
177177 start_time = time .time ()
178178
179+
180+
179181 for n in range (len (cameras )):
180182 cam = cameras [n ]
181183 try :
182- i = cam .GetNextImage ()
184+ # milliseconds.
185+ try :
186+ if n == 0 :
187+ i = cam .GetNextImage ()
188+ else :
189+ i = cam .GetNextImage (20 )
183190 #print(i.GetWidth(), i.GetHeight(), i.GetBitsPerPixel())
191+ except PySpin .SpinnakerException as ex :
192+ print ("none" )
193+ continue
184194
185195 if i .IsIncomplete ():
196+ print ("incomplete" )
186197 pass
187- else :
198+ else :
199+ if n == 0 :
200+ print ("new frame" )
201+ count += 1
202+ images = [None , None , None ]
203+
204+ print (n , time .time () )
205+
188206 cam_id = cam .GetUniqueID ()
189207
190208 if save_for_openpose :
@@ -194,37 +212,40 @@ def run(self):
194212 filename = "{}/{:012}_rendered_{}.jpg" .format (target_folder , count , n )
195213 else :
196214 filename = "{}/cam_{}__{:06}.jpg" .format (target_folder , cam_id , count )
197- workers [n ].addImage ( (filename , i ) )
215+ #print(filename, count[n], cam_id)
216+
217+ images [n ] = (filename , i )
218+ #worker.addImage( (filename, i) )
198219
199- if cam_id == master_id :
200- count += 1
201220
202221 i .Release ()
203222 del i
204223 except PySpin .SpinnakerException as ex :
205224 print ("Error: {}" .format (ex ))
225+ # after a capture round of all cameras.
226+ if (images [0 ] is not None ) and (images [1 ] is not None ) and (images [2 ] is not None ):
227+ print ("got three images" )
228+ worker .addImage ( images [0 ])
229+ worker .addImage ( images [1 ])
230+ worker .addImage ( images [2 ])
231+
232+
233+
206234except KeyboardInterrupt :
207235 pass
208236#
209237# cleanup
210238#
211239
212- for w in workers :
213- w .stop ()
240+ worker .stop ()
214241
215242while (1 ):
216- report = ""
217- for w in workers :
218- report = report + " {}" .format (w .images .qsize ())
219-
220- print ("{} images to be processed. waiting for thread to finish" .format (report ))
243+
244+ print ("{} images to be processed. waiting for thread to finish" .format (worker .images .qsize ()))
221245 time .sleep (0.5 )
222246
223247 done = True
224- for w in workers :
225- if not w .images .empty ():
226- done = False
227- if done :
248+ if worker .images .empty ():
228249 break
229250
230251
0 commit comments