예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
    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
예제 #5
0
 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
예제 #6
0
 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))
예제 #7
0
 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
예제 #8
0
    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)
예제 #9
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")
예제 #10
0
 def set_colormode(self, colormode):
     check(ueye.is_SetColorMode(self.h_cam, colormode))
예제 #11
0
 def set_displaymode(self, displaymode):
     check(ueye.is_SetDisplayMode(self.h_cam, displaymode))
예제 #12
0
 def free_single(self, buff):
     check(ueye.is_FreeImageMem(self.h_cam, buff.mem_ptr, buff.mem_id))
예제 #13
0
 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)))
예제 #14
0
 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)))