def captureImage(): global handle,Width,Height,cfg,color_mode global COLOR_BayerGB2BGR,COLOR_BayerRG2BGR,COLOR_BayerGR2BGR,COLOR_BayerBG2BGR rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) if rtn_val > 255: print "Error capture image, rtn_val = ",rtn_val if rtn_val == ArducamSDK.USB_CAMERA_USB_TASK_ERROR: exit() if ArducamSDK.Py_ArduCam_availableImage(handle) > 0: rtn_val,data,rtn_cfg = ArducamSDK.Py_ArduCam_readImage(handle) datasize = rtn_cfg['u32Size'] if rtn_val != 0 or datasize == 0: print "read data fail!" ArducamSDK.Py_ArduCam_del(handle) return image = convert_image(data,rtn_cfg,color_mode) if h_flip: image = cv2.flip(image, 1) if v_flip: image = cv2.flip(image, 0) try: img_msg = bridge.cv2_to_imgmsg(image, "bgr8") img_msg.header.stamp = rospy.Time.now() img_msg.header.frame_id = id_frame pub.publish(img_msg) cv2.waitKey(10) except CvBridgeError as e: pass ArducamSDK.Py_ArduCam_del(handle) else: time.sleep(0.001)
def captureImage_thread(self): rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(self.handle) if rtn_val != 0: print("Error beginning capture, rtn_val = ", rtn_val) self.running = False return else: print("Capture began, rtn_val = ", rtn_val) while self.running: if self.loading: rtn_val = ArducamSDK.Py_ArduCam_captureImage(self.handle) if rtn_val > 255: # print("Error capture image, rtn_val = ",rtn_val) if rtn_val == ArducamSDK.USB_CAMERA_USB_TASK_ERROR: break else: print("restarting camera...") # time.sleep(1) ArducamSDK.Py_ArduCam_endCaptureImage(self.handle) self.camera_initFromFile(self.fileName, self.expconf) ArducamSDK.Py_ArduCam_beginCaptureImage(self.handle) self.loading = True self.running = False ArducamSDK.Py_ArduCam_endCaptureImage(self.handle)
def captureImage_thread(): global handle, running, ct_lock, count1 rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print "Error beginning capture, rtn_val = ", rtn_val running = False return else: print "Capture began, rtn_val = ", rtn_val while (running and (not rospy.is_shutdown())): #print "capture" if count1 == 0: if ct_lock.acquire(False): print "capture image", count1 rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) count1 = count1 + 1 if rtn_val != 0: print "Error capture image, rtn_val = ", rtn_val break else: time.sleep(0.005) ct_lock.release() else: time.sleep(0.005) else: time.sleep(0.005) running = False ArducamSDK.Py_ArduCam_endCaptureImage(handle)
def capture_thread(self): global handle, running rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print("Error beginning capture, rtn_val = ", rtn_val) else: logging.info("Capture began, rtn_val = ", rtn_val) while running: rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) if rtn_val > 255: #print("Error capture image, rtn_val = ", rtn_val) if rtn_val == ArducamSDK.USB_CAMERA_USB_TASK_ERROR: print("ardu cam USB_CAMERA_USB_TASK_ERROR!!") time.sleep(0.01)
def read_next_frame(self): code = ArducamSDK.Py_ArduCam_captureImage(self.handle) if code > 255: raise ArducamException("Error capturing image", code=code) if ArducamSDK.Py_ArduCam_availableImage(self.handle): try: rtn_val, data, rtn_cfg = ArducamSDK.Py_ArduCam_readImage( self.handle) if rtn_val != 0 or rtn_cfg['u32Size'] == 0: raise ArducamException( "Bad image read! Datasize was {}".format( rtn_cfg['u32Size']), code=rtn_val) return convert_image(data, rtn_cfg, self.color_mode) finally: ArducamSDK.Py_ArduCam_del(self.handle)
def captureImage_thread(): global handle,running rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print "Error beginning capture, rtn_val = ",rtn_val running = False return else: print "Capture began, rtn_val = ",rtn_val while running: #print "capture" rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) if rtn_val != 0: print "Error capture image, rtn_val = ",rtn_val break time.sleep(0.005) running = False ArducamSDK.Py_ArduCam_endCaptureImage(handle)
def captureImage_thread(): global handle, running rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print("Error beginning capture, rtn_val = ", rtn_val) running = False return else: print("Capture began, rtn_val = ", rtn_val) while running: #print "capture" rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) if rtn_val > 255: print("Error capture image, rtn_val = ", rtn_val) if rtn_val == ArducamSDK.USB_CAMERA_USB_TASK_ERROR: break time.sleep(0.005) running = False ArducamSDK.Py_ArduCam_endCaptureImage(handle)
def captureImage_thread(): global handle, running rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print("Failed to begin capture, return value: %s." % (rtn_val)) running = False return else: print("Capture began: %s." % (rtn_val)) while running: # print "capture" rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) if rtn_val > 255: print("Error while capturing image: %s." % (rtn_val)) if rtn_val == ArducamSDK.USB_CAMERA_USB_TASK_ERROR: break time.sleep(0.005) running = False ArducamSDK.Py_ArduCam_endCaptureImage(handle)
def captureImage_thread(): global handle, running rtn_val = ArducamSDK.Py_ArduCam_beginCaptureImage(handle) if rtn_val != 0: print "Error beginning capture, rtn_val = ", rtn_val running = False return else: print "Capture began, rtn_val = ", rtn_val while (running and (not rospy.is_shutdown())): #print "capture" time0 = time.time() rtn_val = ArducamSDK.Py_ArduCam_captureImage(handle) time1 = time.time() print str(time1 - time0) if rtn_val != 0: print "Error capture image, rtn_val = ", rtn_val break time.sleep(0.005) running = False ArducamSDK.Py_ArduCam_endCaptureImage(handle)