コード例 #1
0
    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
コード例 #2
0
ファイル: presenter.py プロジェクト: JackEAllen/mantidimaging
    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
コード例 #3
0
ファイル: loader.py プロジェクト: mantidproject/mantidimaging
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
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
ファイル: presenter.py プロジェクト: Pasarus/mantidimaging
    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:])
コード例 #7
0
ファイル: presenter.py プロジェクト: JackEAllen/mantidimaging
    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:])
コード例 #8
0
ファイル: loader.py プロジェクト: mantidproject/mantidimaging
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