Ejemplo n.º 1
0
 def test_pipeline_saving(self, qtbot, tmp_path, image, algorithm_parameters, mask_property):
     settings = PartSettings(tmp_path)
     settings.image = image
     settings.last_executed_algorithm = algorithm_parameters["algorithm_name"]
     algorithm = analysis_algorithm_dict[algorithm_parameters["algorithm_name"]]()
     algorithm.set_image(settings.image)
     algorithm.set_parameters(**algorithm_parameters["values"])
     result = algorithm.calculation_run(lambda x, y: None)
     settings.set_segmentation_result(result)
     project_info = settings.get_project_info()
     mask = calculate_mask_from_project(mask_property, settings.get_project_info())
     settings.add_history_element(
         create_history_element_from_project(
             project_info,
             mask_property,
         )
     )
     settings.mask = mask
     calculate_mask_from_project(mask_property, settings.get_project_info())
     algorithm_parameters["values"]["channel"] = 1
     algorithm.set_parameters(**algorithm_parameters["values"])
     algorithm.set_mask(settings.mask)
     result2 = algorithm.calculation_run(lambda x, y: None)
     assert np.max(result2.roi) == 2
     settings.set_segmentation_result(result2)
     project_info = settings.get_project_info()
     SaveProject.save(tmp_path / "project.tgz", project_info)
     assert os.path.exists(tmp_path / "project.tgz")
     loaded = LoadProject.load([tmp_path / "project.tgz"])
     assert np.all(loaded.roi == result2.roi)
     assert len(loaded.history) == 1
Ejemplo n.º 2
0
 def next_mask(self):
     project_info: ProjectTuple = self.settings.get_project_info()
     mask_property = self.mask_widget.get_mask_property()
     self.settings.set("mask_manager.mask_property", mask_property)
     mask = calculate_mask_from_project(mask_description=mask_property, project=project_info)
     self.settings.add_history_element(create_history_element_from_project(project_info, mask_property,))
     if self.settings.history_redo_size():
         history: HistoryElement = self.settings.history_next_element()
         self.settings.set("current_algorithm", history.segmentation_parameters["algorithm_name"])
         self.settings.set(
             f"algorithm.{history.segmentation_parameters['algorithm_name']}",
             history.segmentation_parameters["values"],
         )
     self.settings.mask = mask
     self.close()