fix(tasks): Update _reduce_slab function to accept reduce_axis parameter for flexibility in reconstruction
This commit is contained in:
+6
-6
@@ -278,13 +278,13 @@ def series_reconstruct_task(
|
|||||||
spacing_y = source_axis_spacings[src_y]
|
spacing_y = source_axis_spacings[src_y]
|
||||||
spacing_z = source_axis_spacings[src_z]
|
spacing_z = source_axis_spacings[src_z]
|
||||||
|
|
||||||
def _reduce_slab(slab):
|
def _reduce_slab(slab, reduce_axis=0):
|
||||||
if recon_thickness_mode == "max":
|
if recon_thickness_mode == "max":
|
||||||
out = np.max(slab, axis=0)
|
out = np.max(slab, axis=reduce_axis)
|
||||||
elif recon_thickness_mode == "min":
|
elif recon_thickness_mode == "min":
|
||||||
out = np.min(slab, axis=0)
|
out = np.min(slab, axis=reduce_axis)
|
||||||
else:
|
else:
|
||||||
out = np.mean(slab, axis=0)
|
out = np.mean(slab, axis=reduce_axis)
|
||||||
|
|
||||||
if np.issubdtype(volume.dtype, np.integer):
|
if np.issubdtype(volume.dtype, np.integer):
|
||||||
info = np.iinfo(volume.dtype)
|
info = np.iinfo(volume.dtype)
|
||||||
@@ -348,7 +348,7 @@ def series_reconstruct_task(
|
|||||||
)
|
)
|
||||||
plane_builders[plane_norm] = {
|
plane_builders[plane_norm] = {
|
||||||
"count": int(len(slab_indices)),
|
"count": int(len(slab_indices)),
|
||||||
"slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, slabs[idx], :]),
|
"slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, slabs[idx], :], reduce_axis=1),
|
||||||
"pixel_spacing_out": [float(spacing_z), float(spacing_x)],
|
"pixel_spacing_out": [float(spacing_z), float(spacing_x)],
|
||||||
"spacing_between_slices_out": float(plane_spacing),
|
"spacing_between_slices_out": float(plane_spacing),
|
||||||
"slice_thickness_out": float(plane_thickness),
|
"slice_thickness_out": float(plane_thickness),
|
||||||
@@ -363,7 +363,7 @@ def series_reconstruct_task(
|
|||||||
)
|
)
|
||||||
plane_builders[plane_norm] = {
|
plane_builders[plane_norm] = {
|
||||||
"count": int(len(slab_indices)),
|
"count": int(len(slab_indices)),
|
||||||
"slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, :, slabs[idx]]),
|
"slice_fn": lambda idx, slabs=slab_indices: _reduce_slab(vol_zyx[:, :, slabs[idx]], reduce_axis=2),
|
||||||
"pixel_spacing_out": [float(spacing_z), float(spacing_y)],
|
"pixel_spacing_out": [float(spacing_z), float(spacing_y)],
|
||||||
"spacing_between_slices_out": float(plane_spacing),
|
"spacing_between_slices_out": float(plane_spacing),
|
||||||
"slice_thickness_out": float(plane_thickness),
|
"slice_thickness_out": float(plane_thickness),
|
||||||
|
|||||||
Reference in New Issue
Block a user