|
13 | 13 | from nibabel.arrayproxy import get_obj_dtype
|
14 | 14 | from scipy import ndimage as ndi
|
15 | 15 |
|
16 |
| -from nitransforms.linear import Affine, get |
| 16 | +from nitransforms.linear import Affine, LinearTransformsMapping |
17 | 17 | from nitransforms.base import (
|
18 | 18 | ImageGrid,
|
19 | 19 | TransformError,
|
@@ -97,15 +97,27 @@ def apply(
|
97 | 97 |
|
98 | 98 | data = np.asanyarray(spatialimage.dataobj)
|
99 | 99 | data_nvols = 1 if data.ndim < 4 else data.shape[-1]
|
100 |
| - xfm_nvols = len(transform) |
101 |
| - assert xfm_nvols == transform.ndim == _ref.ndim |
102 | 100 |
|
| 101 | + if type(transform) == Affine or type(transform) == LinearTransformsMapping: |
| 102 | + xfm_nvols = len(transform) |
| 103 | + else: |
| 104 | + xfm_nvols = transform.ndim |
| 105 | + """ |
103 | 106 | if data_nvols == 1 and xfm_nvols > 1:
|
104 | 107 | data = data[..., np.newaxis]
|
105 | 108 | elif data_nvols != xfm_nvols:
|
106 | 109 | raise ValueError(
|
107 | 110 | "The fourth dimension of the data does not match the transform's shape."
|
108 | 111 | )
|
| 112 | + RESAMPLING FAILS. SUGGEST: |
| 113 | + """ |
| 114 | + if data.ndim < transform.ndim: |
| 115 | + data = data[..., np.newaxis] |
| 116 | + elif data_nvols > 1 and data_nvols != xfm_nvols: |
| 117 | + import pdb; pdb.set_trace() |
| 118 | + raise ValueError( |
| 119 | + "The fourth dimension of the data does not match the transform's shape." |
| 120 | + ) |
109 | 121 |
|
110 | 122 | serialize_nvols = serialize_nvols if serialize_nvols and serialize_nvols > 1 else np.inf
|
111 | 123 | serialize_4d = max(data_nvols, xfm_nvols) > serialize_nvols
|
|
0 commit comments