# version:1.0.1905.9051 import time from src.components import gxipy as gx from PIL import Image def main(): print("Initializing......") # create a device manager device_manager = gx.DeviceManager() dev_num, dev_info_list = device_manager.update_device_list() if dev_num is 0: print("Number of enumerated devices is 0") return # open the first device cam = device_manager.open_device_by_index(1) # exit when the camera is a mono camera if cam.PixelColorFilter.is_implemented() is False: print("This sample does not support mono camera.") cam.close_device() return # set continuous acquisition cam.TriggerMode.set(gx.GxSwitchEntry.OFF) # set exposure cam.ExposureTime.set(10000.0) # set gain cam.Gain.set(10.0) # get param of improving image quality if cam.GammaParam.is_readable(): gamma_value = cam.GammaParam.get() gamma_lut = gx.Utility.get_gamma_lut(gamma_value) else: gamma_lut = None if cam.ContrastParam.is_readable(): contrast_value = cam.ContrastParam.get() contrast_lut = gx.Utility.get_contrast_lut(contrast_value) else: contrast_lut = None if cam.ColorCorrectionParam.is_readable(): color_correction_param = cam.ColorCorrectionParam.get() else: color_correction_param = 0 # start data acquisition cam.stream_on() time.sleep(0.1) # acquisition image: num is the image number num = 10 for i in range(num): # get raw image raw_image = cam.data_stream[0].get_image() time.sleep(0.1) if raw_image is None: print("Getting image failed.") continue # get RGB image from raw image rgb_image = raw_image.convert("RGB") if rgb_image is None: continue # improve image quality rgb_image.image_improvement(color_correction_param, contrast_lut, gamma_lut) # create numpy array with data from raw image numpy_image = rgb_image.get_numpy_array() if numpy_image is None: continue # show acquired image img = Image.fromarray(numpy_image, 'RGB') img.show() # print height, width, and frame ID of the acquisition image print("Frame ID: %d Height: %d Width: %d" % (raw_image.get_frame_id(), raw_image.get_height(), raw_image.get_width())) # stop data acquisition cam.stream_off() # close device cam.close_device() if __name__ == "__main__": main()