diff --git a/PyNutil/io/read_and_write.py b/PyNutil/io/read_and_write.py index 8113b62d468eb93617577d487dc0ef211c0ac6f0..758429617d15dac4d0efbcc0d7e5a95f4302e3d0 100644 --- a/PyNutil/io/read_and_write.py +++ b/PyNutil/io/read_and_write.py @@ -182,7 +182,7 @@ def load_segmentation(segmentation_path: str): # related to read and write # this function reads a VisuAlign JSON and returns the slices -def load_visualign_json(filename, apply_damage_mask): +def load_quint_json(filename, apply_damage_mask=True): """ Reads a VisuAlign JSON file (.waln or .wwrp) and extracts slice information. Slices may include anchoring, grid spacing, and other image metadata. @@ -215,12 +215,9 @@ def load_visualign_json(filename, apply_damage_mask): slices = vafile["slices"] if len(slices) > 1: slices = propagate(slices) - for slice in slices: - if not apply_damage_mask: - if "grid" in slice: - slice.pop("grid") - gridspacing = vafile["gridspacing"] if "gridspacing" in vafile else None - return slices, gridspacing + vafile["slices"] = slices + return vafile + # related to read_and_write, used in write_points_to_meshview diff --git a/PyNutil/processing/coordinate_extraction.py b/PyNutil/processing/coordinate_extraction.py index dd4bbebf0cb7839c45da467e290fa9aa66b86b4d..aecf1585789ea10014c52f2ea5ba680e9316dfc3 100644 --- a/PyNutil/processing/coordinate_extraction.py +++ b/PyNutil/processing/coordinate_extraction.py @@ -1,6 +1,6 @@ import numpy as np import pandas as pd -from ..io.read_and_write import load_visualign_json +from ..io.read_and_write import load_quint_json from .counting_and_load import flat_to_dataframe, rescale_image, load_image from .generate_target_slice import generate_target_slice from .visualign_deformations import triangulate @@ -134,7 +134,16 @@ def folder_to_atlas_space( Returns: tuple: Various arrays and lists containing transformed coordinates and labels. """ - slices, gridspacing = load_visualign_json(quint_alignment, apply_damage_mask) + quint_json = load_quint_json(quint_alignment, apply_damage_mask) + slices = quint_json['slices'] + if apply_damage_mask and "gridspacing" in quint_json: + gridspacing = quint_json["gridspacing"] + else: + gridspacing = None + if not apply_damage_mask: + for slice in slices: + if "grid" in slice: + slice.pop("grid") segmentations = get_segmentations(folder) flat_files, flat_file_nrs = get_flat_files(folder, use_flat) region_areas_list = [