From c2322c492cc104385d473c2dfdd7e15c5d9e08b7 Mon Sep 17 00:00:00 2001 From: polarbean <harry.carey95@gmail.com> Date: Wed, 26 Mar 2025 16:44:03 +0100 Subject: [PATCH] make load quint json function more general --- PyNutil/io/read_and_write.py | 11 ++++------- PyNutil/processing/coordinate_extraction.py | 13 +++++++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/PyNutil/io/read_and_write.py b/PyNutil/io/read_and_write.py index 8113b62..7584296 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 dd4bbeb..aecf158 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 = [ -- GitLab