from shutil import copyfile class Image(DeviceBase, Readable): def __init__(self, name, pixel): DeviceBase.__init__(self, name) self.pixel = pixel self.roi = [0,0, self.pixel.PIX_XDIM-1, self.pixel.PIX_XDIM] self.broi = [0,0, self.pixel.PIX_XDIM-1, self.pixel.PIX_YDIM] def get_int(self, threshold1= None, threshold2= None, threshold3= None, threshold4= None, filename = None): if threshold1 is None: threshold1 = self.pixel.PIX_THRESH1 if threshold2 is None: threshold2 = self.pixel.PIX_THRESH2 if threshold3 is None: threshold3 = self.pixel.PIX_THRESH3 if threshold4 is None: threshold4 = self.pixel.PIX_THRESH4 if filename is None: filename = self.pixel.get_image_filename() tmp_file = self.pixel.image_root_folder + "tmp/spec_image_info.dat" copyfile(filename, tmp_file) return img_get_int(tmp_file, threshold1, threshold2, threshold3, threshold4, \ self.pixel.IMAGE_HEADER_LENGTH, self.pixel.PIX_XDIM, self.pixel.PIX_YDIM,self.pixel.PIX_COLOR_DEPTH, \ self.roi[0], self.roi[1], self.roi[2], self.roi[3], self.broi[0], self.broi[1], self.broi[2], self.broi[3]) print ret return I_sum def read(self): (I_sum, area_I, thresh1_count, thresh2_count, thresh3_count, thresh4_count, I_sum_bgr, area_bgr) = self.get_int() ret = I_sum if area_bgr > 0: ret = ret - ((I_sum_bgr / area_bgr) * area_I) return ret add_device( Image("image", pixel), True)