@@ -133,13 +133,27 @@ def map(self, x, inverse=False):
133133 >>> xfm.map([[-6.5, -36., -19.5], [-1., -41.5, -11.25]]).tolist()
134134 [[0.0, -0.47516798973083496, 0.0], [0.0, -0.538356602191925, 0.0]]
135135
136+ >>> np.array_str(
137+ ... xfm.map([[-6.7, -36.3, -19.2], [-1., -41.5, -11.25]]),
138+ ... precision=3,
139+ ... suppress_small=True,
140+ ... )
141+ '[[ 0. -0.482 0. ]\n [ 0. -0.538 0. ]]'
142+
136143 >>> xfm = DenseFieldTransform(
137144 ... test_dir / "someones_displacement_field.nii.gz",
138145 ... is_deltas=True,
139146 ... )
140147 >>> xfm.map([[-6.5, -36., -19.5], [-1., -41.5, -11.25]]).tolist()
141148 [[-6.5, -36.47516632080078, -19.5], [-1.0, -42.03835678100586, -11.25]]
142149
150+ >>> np.array_str(
151+ ... xfm.map([[-6.7, -36.3, -19.2], [-1., -41.5, -11.25]]),
152+ ... precision=3,
153+ ... suppress_small=True,
154+ ... )
155+ '[[ -6.7 -36.782 -19.2 ]\n [ -1. -42.038 -11.25 ]]'
156+
143157 """
144158
145159 if inverse is True :
@@ -151,14 +165,16 @@ def map(self, x, inverse=False):
151165 indexes = tuple (tuple (i ) for i in indexes .T )
152166 return self ._field [indexes ]
153167
154- return map_coordinates (
155- self ._field ,
156- ijk ,
157- order = 3 ,
158- mode = "constant" ,
159- cval = np .zeros (self .reference .ndim ),
160- prefilter = True ,
161- )
168+ return np .vstack ((
169+ map_coordinates (
170+ self ._field [..., i ],
171+ ijk .T ,
172+ order = 3 ,
173+ mode = "constant" ,
174+ cval = 0 ,
175+ prefilter = True ,
176+ ) for i in range (self .reference .ndim )
177+ )).T
162178
163179 def __matmul__ (self , b ):
164180 """
0 commit comments