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