def run_single_camera(cam, uid): print('Connecting to Camera...') cam.connect(uid) print_camera_info(cam.getCameraInfo()) for i in range(cam.getNumStreamChannels()): print_stream_channel_info(cam.getGigEStreamChannelInfo(i)) print('Querying GigE image setting information...') image_settings_info = cam.getGigEImageSettingsInfo() image_settings = PyCapture2.GigEImageSettings() image_settings.offsetX = 0 image_settings.offsetY = 0 image_settings.height = image_settings_info.maxHeight image_settings.width = image_settings_info.maxWidth image_settings.pixelFormat = PyCapture2.PIXEL_FORMAT.MONO8 print('Setting GigE image settings...') cam.setGigEImageSettings(image_settings) enable_embedded_timestamp(cam, True) print('Starting image capture...') cam.startCapture() prev_ts = None num_images_to_grab = 10 for i in range(num_images_to_grab): try: image = cam.retrieveBuffer() except PyCapture2.Fc2error as fc2Err: print('Error retrieving buffer : ', fc2Err) continue ts = image.getTimeStamp() if prev_ts: diff = (ts.cycleSeconds - prev_ts.cycleSeconds) * 8000 + ( ts.cycleCount - prev_ts.cycleCount) print('Timestamp [ %d %d ] - %d' % (ts.cycleSeconds, ts.cycleCount, diff)) prev_ts = ts newimg = image.convert(PyCapture2.PIXEL_FORMAT.BGR) print('Saving the last image to GigEGrabEx.png') newimg.save('GigEGrabEx.png'.encode('utf-8'), PyCapture2.IMAGE_FILE_FORMAT.PNG) cam.stopCapture() enable_embedded_timestamp(cam, False) cam.disconnect()
def __init__(self, width=720, height=480): self.width = width self.height = height #Connect to Camera bus = PyCapture2.BusManager() camInfo = bus.discoverGigECameras() self.cam = PyCapture2.GigECamera() uID = bus.getCameraFromIndex(0) self.cam.connect(uID) #Set Up Camera Parameters imgSetInfo = self.cam.getGigEImageSettingsInfo() imgSet = PyCapture2.GigEImageSettings() imgSet.offsetX = (2048 - self.width) / 2 imgSet.offsetY = (2448 - self.height) / 2 imgSet.height = self.height imgSet.width = self.width imgSet.pixelFormat = PyCapture2.PIXEL_FORMAT.RGB self.cam.setGigEImageSettings(imgSet)