def select_input(self, event): # get the info about the number of images in the file self.input_path = IJ.getFilePath("Choose a File") # if default naming is not changed use file name if self.textfield2.text == self.default_naming: self.file_core_name = path.basename(self.input_path).split('.czi')[0] else: self.file_core_name = self.textfield2.text # put that name in the text field self.panel.getComponents()[1].setText(self.file_core_name) reader = ImageReader() reader.setId(self.input_path) metadata_list = reader.getCoreMetadataList() # slide scanner makes a piramid of X for every ROI you draw # resolution is not updated in the metadata so it needs to be calculated manually number_of_images, self.num_of_piramids_list = get_data_structure(metadata_list) print("Number of images is " + str(number_of_images)) # get the indexes of the maximum resolution images self.max_res_indexes = get_maxres_indexes(self.num_of_piramids_list) print("Number of pyramids are " + str(self.num_of_piramids_list)) # set names of subimages in the list, waiting to compare to current outputs self.possible_slices = [self.file_core_name + "_slice-" + str(n) for n in range(number_of_images)] self.binFactor_list, self.binStep_list = get_binning_factor(self.max_res_indexes, self.num_of_piramids_list, metadata_list) print("Binning factors are " + str(self.binFactor_list)) print("Binning steps are " + str(self.binStep_list)) # create output directory if it doesn't exist # get the animal id animal_id = self.file_core_name.split('_')[0] self.output_path = path.join(path.dirname(path.dirname(self.input_path)), "Processed_data", animal_id, "ROIs") if path.isdir(self.output_path): print("Output path was already created") else: makedirs(self.output_path) print("Output path created") # update_lists depending on whether something has been processed already self.update_list()
sys.path.append(path.abspath(path.dirname(__file__))) from functions.czi_structure import get_data_structure, get_binning_factor, open_czi_series, \ get_maxres_indexes from functions.image_manipulation import extractChannel piramid_to_open = 1 channel_to_save = 3 final_resolution = 5 # Main if __name__ in ['__builtin__', '__main__']: # get the file input_path = IJ.getFilePath("Choose a .czi file") reader = ImageReader() reader.setId(input_path) metadata_list = reader.getCoreMetadataList() # slide scanner makes a piramid of X for every ROI you draw # resolution is not updated in the metadata so it needs to be calculated manually number_of_images, num_of_piramids_list = get_data_structure(metadata_list) IJ.log("Number of images is " + str(number_of_images)) # set names of subimages in the list, waiting to compare to current outputs file_core_name = path.basename(input_path).split('.czi')[0] # get the indexes of the maximum resolution images max_res_indexes = get_maxres_indexes(num_of_piramids_list) IJ.log("Number of pyramids are " + str(num_of_piramids_list)) # set names of subimages in the list, waiting to compare to current outputs possible_slices = [ file_core_name + "_slice-" + str(n) for n in range(number_of_images) ] binFactor_list, binStep_list = get_binning_factor(max_res_indexes,