def get_parameters(self) -> LoadingParameters: lp = LoadingParameters() sample_log = self.view.sample_log.path_text( ) if self.view.sample_log.use.isChecked() else None lp.sample = ImageParameters(input_path=self.view.sample.directory(), format=self.image_format, prefix=get_prefix( self.view.sample.path_text()), indices=self.view.sample.indices, log_file=sample_log) lp.name = self.view.sample.file() lp.pixel_size = self.view.pixelSize.value() if self.view.flat_before.use.isChecked( ) and self.view.flat_before.path_text() != "": flat_before_log = self.view.flat_before_log.path_text() if self.view.flat_before_log.use.isChecked() \ else None lp.flat_before = ImageParameters( input_path=self.view.flat_before.directory(), prefix=get_prefix(self.view.flat_before.path_text()), format=self.image_format, log_file=flat_before_log) if self.view.flat_after.use.isChecked( ) and self.view.flat_after.path_text() != "": flat_after_log = self.view.flat_after_log.path_text() if self.view.flat_after_log.use.isChecked() \ else None lp.flat_after = ImageParameters( input_path=self.view.flat_after.directory(), prefix=get_prefix(self.view.flat_after.path_text()), format=self.image_format, log_file=flat_after_log) if self.view.dark_before.use.isChecked( ) and self.view.dark_before.path_text() != "": lp.dark_before = ImageParameters( input_path=self.view.dark_before.directory(), prefix=get_prefix(self.view.dark_before.path_text()), format=self.image_format) if self.view.dark_after.use.isChecked( ) and self.view.dark_after.path_text() != "": lp.dark_after = ImageParameters( input_path=self.view.dark_after.directory(), prefix=get_prefix(self.view.dark_after.path_text()), format=self.image_format) if self.view.proj_180deg.use.isChecked( ) and self.view.proj_180deg.path_text() != "": lp.proj_180deg = ImageParameters( input_path=self.view.proj_180deg.directory(), prefix=os.path.splitext(self.view.proj_180deg.path_text())[0], format=self.image_format) lp.dtype = self.view.pixel_bit_depth.currentText() lp.sinograms = self.view.images_are_sinograms.isChecked() lp.pixel_size = self.view.pixelSize.value() return lp
def get_parameters(self) -> LoadingParameters: lp = LoadingParameters() lp.sample = ImageParameters(input_path=self.view.sample.directory(), format=self.image_format, prefix=get_prefix( self.view.sample.path_text()), indices=self.view.sample.indices, log_file=self.view.sample_log.path_text()) lp.name = self.view.sample.file() lp.pixel_size = self.view.pixelSize.value() if self.view.flat.use and self.view.flat.path_text() != "": lp.flat = ImageParameters(input_path=self.view.flat.directory(), prefix=get_prefix( self.view.flat.path_text()), format=self.image_format) if self.view.dark.use and self.view.dark.path_text() != "": lp.dark = ImageParameters(input_path=self.view.dark.directory(), prefix=get_prefix( self.view.dark.path_text()), format=self.image_format) if self.view.proj_180deg.use and self.view.proj_180deg.path_text( ) != "": lp.proj_180deg = ImageParameters( input_path=self.view.proj_180deg.directory(), prefix=get_prefix(self.view.proj_180deg.path_text()), format=self.image_format) lp.dtype = self.view.pixel_bit_depth.currentText() lp.sinograms = self.view.images_are_sinograms.isChecked() lp.pixel_size = self.view.pixelSize.value() return lp
def load_stack(file_path: str, progress: Optional[Progress] = None) -> Images: image_format = get_file_extension(file_path) prefix = get_prefix(file_path) file_names = get_file_names(path=os.path.dirname(file_path), img_format=image_format, prefix=prefix) # type: ignore return load(file_names=file_names, progress=progress).sample
def load_data( self, file_path: Optional[str] ) -> Tuple[Optional[np.ndarray], Optional[List[str]]]: if file_path: file_names = get_file_names(os.path.dirname(file_path), self.img_format, get_prefix(file_path)) return self.load_files(file_names), file_names return None, None
def load_data( self, file_path ) -> Tuple[Optional[np.ndarray], Optional[List[str]], Optional[str]]: if file_path: file_names = get_file_names(os.path.dirname(file_path), self.img_format, get_prefix(file_path)) memory_file_name = pu.create_shared_name(file_names[0]) return self.load_files( file_names, memory_file_name), file_names, memory_file_name return None, None, None
def do_update_sample(self): """ Updates the memory usage and the indices in the dialog. """ selected_file = self.view.select_file("Sample") if not selected_file: return False self.view.sample.path = selected_file self.view.sample.widget.setExpanded(True) sample_filename = self.view.sample.file() self.image_format = get_file_extension(sample_filename) filename = self.view.sample.path_text() dirname = self.view.sample.directory() try: self.last_file_info = read_in_file_information(dirname, in_prefix=get_prefix(filename), in_format=self.image_format) except Exception as e: getLogger(__name__).error(f"Failed to read file {sample_filename} {e}") self.view.show_error("Failed to read this file. See log for details.", traceback.format_exc()) self.last_file_info = None return sample_dirname = Path(dirname) self.view.flat_before.set_images( self._find_images(sample_dirname, "Flat", suffix="Before", look_without_suffix=True)) self.view.flat_after.set_images(self._find_images(sample_dirname, "Flat", suffix="After")) self.view.dark_before.set_images( self._find_images(sample_dirname, "Dark", suffix="Before", look_without_suffix=True)) self.view.dark_after.set_images(self._find_images(sample_dirname, "Dark", suffix="After")) self.view.proj_180deg.path = self._find_180deg_proj(sample_dirname) try: self.set_sample_log(self.view.sample_log, sample_dirname, self.view.sample.directory(), self.last_file_info.filenames) except RuntimeError as err: self.view.show_error(str(err), traceback.format_exc()) self.view.sample_log.use = False self.view.flat_before_log.path = self._find_log(sample_dirname, self.view.flat_before.directory()) self.view.flat_before_log.use = False self.view.flat_after_log.path = self._find_log(sample_dirname, self.view.flat_after.directory()) self.view.flat_after_log.use = False self.view.images_are_sinograms.setChecked(self.last_file_info.sinograms) self.view.sample.update_indices(self.last_file_info.shape[0]) self.view.sample.update_shape(self.last_file_info.shape[1:])
def do_update_sample(self): """ Updates the memory usage and the indices in the dialog. """ selected_file = self.view.select_file("Sample") if not selected_file: return False self.view.sample.path = selected_file self.view.sample.widget.setExpanded(True) sample_filename = self.view.sample.file() self.image_format = get_file_extension(sample_filename) filename = self.view.sample.path_text() dirname = self.view.sample.directory() try: self.last_shape, sinograms = read_in_shape( dirname, in_prefix=get_prefix(filename), in_format=self.image_format) except Exception as e: getLogger(__name__).error( f"Failed to read file {sample_filename} {e}") self.view.show_error( "Failed to read this file. See log for details.", traceback.format_exc()) self.last_shape = (0, 0, 0) sinograms = False sample_dirname = Path(dirname) self.view.flat.set_images(self._find_images(sample_dirname, "Flat")) self.view.dark.set_images(self._find_images(sample_dirname, "Dark")) self.view.proj_180deg.path = self._find_180deg_proj(sample_dirname) self.view.sample_log.path = self._find_log( sample_dirname, self.view.sample.directory()) self.view.sample_log.use = False self.view.flat_log.path = self._find_log(sample_dirname, self.view.flat.directory()) self.view.flat_log.use = False self.view.images_are_sinograms.setChecked(sinograms) self.view.sample.update_indices(self.last_shape[0]) self.view.sample.update_shape(self.last_shape[1:])
def create_loading_parameters_for_file_path( file_path: str, logger: Optional[Logger] = None) -> Optional[LoadingParameters]: sample_file = find_first_file_that_is_possibly_a_sample(file_path) if sample_file is None: return None loading_parameters = LoadingParameters() loading_parameters.dtype = DEFAULT_PIXEL_DEPTH loading_parameters.pixel_size = DEFAULT_PIXEL_SIZE loading_parameters.sinograms = DEFAULT_IS_SINOGRAM loading_parameters.name = os.path.basename(sample_file) _, image_format = os.path.splitext(sample_file) sample_directory = os.path.dirname(sample_file) last_file_info = read_in_file_information( sample_directory, in_prefix=get_prefix(sample_file), in_format=image_format) try: sample_log: Optional[str] = find_and_verify_sample_log( sample_directory, last_file_info.filenames) except FileNotFoundError: sample_log = None loading_parameters.sample = ImageParameters(input_path=sample_directory, format=image_format, prefix=get_prefix(sample_file), log_file=sample_log) # Flat before flat_before_images = find_images(Path(sample_directory), "Flat", suffix="Before", look_without_suffix=True, image_format=image_format, logger=logger) if len(flat_before_images) > 0: flat_before_image = flat_before_images[0] flat_before_directory = os.path.dirname(flat_before_image) flat_before_log = find_log(Path(sample_directory), flat_before_directory, logger) loading_parameters.flat_before = ImageParameters( input_path=flat_before_directory, format=image_format, prefix=get_prefix(flat_before_image), log_file=flat_before_log) # Flat after flat_after_images = find_images(Path(sample_directory), "Flat", suffix="After", image_format=image_format, logger=logger) if len(flat_after_images) > 0: flat_after_image = flat_after_images[0] flat_after_directory = os.path.dirname(flat_after_image) flat_after_log = find_log(Path(sample_directory), flat_after_directory, logger) loading_parameters.flat_after = ImageParameters( input_path=flat_after_directory, format=image_format, prefix=get_prefix(flat_after_image), log_file=flat_after_log) # Dark before dark_before_images = find_images(Path(sample_directory), "Dark", suffix="Before", look_without_suffix=True, image_format=image_format, logger=logger) if len(dark_before_images) > 0: dark_before_image = dark_before_images[0] dark_before_directory = os.path.dirname(dark_before_image) loading_parameters.dark_before = ImageParameters( input_path=dark_before_directory, prefix=get_prefix(dark_before_image), format=image_format) # Dark after dark_after_images = find_images(Path(sample_directory), "Dark", suffix="After", image_format=image_format, logger=logger) if len(dark_after_images) > 0: dark_after_image = dark_after_images[0] dark_after_directory = os.path.dirname(dark_after_image) loading_parameters.dark_after = ImageParameters( input_path=dark_after_directory, prefix=get_prefix(dark_after_image), format=image_format) # 180 Degree projection proj_180deg = find_180deg_proj(Path(sample_directory), image_format, logger) if proj_180deg != "": loading_parameters.proj_180deg = ImageParameters( input_path=proj_180deg, prefix=get_prefix(proj_180deg), format=image_format) return loading_parameters