def get_pixel_clock(self, verbose=False): ret = ueye.UINT() check( ueye.is_PixelClock(self.h_cam, ueye.IS_PIXELCLOCK_CMD_GET, ret, ueye.sizeof(ret))) if verbose: print('Pixel clock: {}'.format(str(ret))) return ret
def get_exposure(self, verbose=False): ret = ueye.DOUBLE() check( ueye.is_Exposure(self.h_cam, ueye.IS_EXPOSURE_CMD_GET_EXPOSURE, ret, ueye.sizeof(ret))) if verbose: print('Exposure: {}'.format(str(ret))) return ret
def get_format_list(self): count = ueye.UINT() check(ueye.is_ImageFormat(self.h_cam, ueye.IMGFRMT_CMD_GET_NUM_ENTRIES, count, ueye.sizeof(count))) format_list = ueye.IMAGE_FORMAT_LIST(ueye.IMAGE_FORMAT_INFO * count.value) format_list.nSizeOfListEntry = ueye.sizeof(ueye.IMAGE_FORMAT_INFO) format_list.nNumListElements = count.value check(ueye.is_ImageFormat(self.h_cam, ueye.IMGFRMT_CMD_GET_LIST, format_list, ueye.sizeof(format_list))) return format_list
def alloc_single(self): rect = self.get_aoi() bpp = get_bits_per_pixel(self.get_colormode()) buff = ImageBuffer() ueye.is_AllocImageMem(self.h_cam, rect.width, rect.height, bpp, buff.mem_ptr, buff.mem_id) check(ueye.is_SetImageMem(self.h_cam, buff.mem_ptr, buff.mem_id)) return buff
def get_pixel_clock_range(self, verbose=False): ret = (ueye.UINT * 3)() check( ueye.is_PixelClock(self.h_cam, ueye.IS_PIXELCLOCK_CMD_GET_RANGE, ret, ueye.sizeof(ret))) if verbose: print('Pixel clock range: min={}, max={}, step={}'.format( str(ret[0].value), str(ret[1].value), str(ret[2].value))) return ret
def set_auto_exposure(self, auto=True): # FIXME no effect ? val1 = ueye.DOUBLE(1) val2 = ueye.DOUBLE() if auto == False: val1 = ueye.DOUBLE(0) check( ueye.is_SetAutoParameter(self.h_cam, ueye.IS_SET_ENABLE_AUTO_SHUTTER, val1, val2))
def get_exposure_range(self, verbose=False): ret = (ueye.DOUBLE * 3)() check( ueye.is_Exposure(self.h_cam, ueye.IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE, ret, ueye.sizeof(ret))) if verbose: print('Exposure range: min={}, max={}, step={}'.format( str(ret[0].value), str(ret[1].value), str(ret[2].value))) return ret
def alloc(self, buffer_count=3): rect = self.get_aoi() bpp = get_bits_per_pixel(self.get_colormode()) for buff in self.img_buffers: check(ueye.is_FreeImageMem(self.h_cam, buff.mem_ptr, buff.mem_id)) for i in range(buffer_count): buff = ImageBuffer() ueye.is_AllocImageMem(self.h_cam, rect.width, rect.height, bpp, buff.mem_ptr, buff.mem_id) check(ueye.is_AddToSequence(self.h_cam, buff.mem_ptr, buff.mem_id)) self.img_buffers.append(buff) ueye.is_InitImageQueue(self.h_cam, 0)
def __init__(self, verbose=False, output_dir='images'): self.new_msg = False self.idx = 0 self.last_msg = None self.verbose = verbose self.calib = None self.output_dir_orig = path.join(output_dir, 'orig') self.output_dir_undist = path.join(output_dir, 'undist') if not path.exists(self.output_dir_orig): makedirs(self.output_dir_orig) if not path.exists(self.output_dir_undist): makedirs(self.output_dir_undist) # camera class to simplify uEye API access self.verbose_print("Start uEye interface") self.cam = Camera() try: self.cam.init() except uEyeException: self.verbose_print("Camera init failed") self.cam = None return check( ueye.is_SetExternalTrigger(self.cam.handle(), ueye.IS_SET_TRIGGER_SOFTWARE)) self.cam.set_colormode(ueye.IS_CM_BGR8_PACKED) self.cam.set_aoi(0, 0, 2048, 2048) # pixel clock self.verbose_print("Pixel clock") self.cam.get_pixel_clock_range(self.verbose) self.cam.set_pixel_clock(20) self.cam.get_pixel_clock(self.verbose) # set expo self.verbose_print("Expo") self.cam.get_exposure_range(self.verbose) self.cam.set_exposure(1.) self.cam.get_exposure(self.verbose) self.verbose_print("Init done") self.buff = self.cam.alloc_single() check(ueye.is_SetDisplayMode(self.cam.handle(), ueye.IS_SET_DM_DIB)) self.verbose_print("Alloc done")
def set_colormode(self, colormode): check(ueye.is_SetColorMode(self.h_cam, colormode))
def set_displaymode(self, displaymode): check(ueye.is_SetDisplayMode(self.h_cam, displaymode))
def free_single(self, buff): check(ueye.is_FreeImageMem(self.h_cam, buff.mem_ptr, buff.mem_id))
def set_pixel_clock(self, clock): val = ueye.UINT(clock) check( ueye.is_PixelClock(self.h_cam, ueye.IS_PIXELCLOCK_CMD_SET, val, ueye.sizeof(val)))
def set_exposure(self, exposure): val = ueye.DOUBLE(exposure) check( ueye.is_Exposure(self.h_cam, ueye.IS_EXPOSURE_CMD_SET_EXPOSURE, val, ueye.sizeof(val)))