Skip to content
Snippets Groups Projects
Commit 9efe621f authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

TEST: Test displacements method, add test data set

parent fc2a1e61
No related branches found
No related tags found
No related merge requests found
...@@ -197,6 +197,34 @@ def test_DisplacementField_transform(): ...@@ -197,6 +197,34 @@ def test_DisplacementField_transform():
assert np.all(np.isnan(got[0, :])) assert np.all(np.isnan(got[0, :]))
assert np.all(np.isclose(got[1, :], scoords[1, :])) assert np.all(np.isclose(got[1, :], scoords[1, :]))
def test_CoefficientField_displacements():
nldir = op.join(datadir, 'nonlinear')
src = op.join(nldir, 'src.nii.gz')
ref = op.join(nldir, 'ref.nii.gz')
cf = op.join(nldir, 'coefficientfield.nii.gz')
df = op.join(nldir, 'displacementfield_no_premat.nii.gz')
src = fslimage.Image(src)
ref = fslimage.Image(ref)
cf = fnirt.readFnirt(cf, src, ref)
df = fnirt.readFnirt(df, src, ref)
ix, iy, iz = ref.shape[:3]
x, y, z = np.meshgrid(np.arange(ix),
np.arange(iy),
np.arange(iz), indexing='ij')
x = x.flatten()
y = y.flatten()
z = z.flatten()
xyz = np.vstack((x, y, z)).T
disps = cf.displacements(xyz)
disps = disps.reshape(df.shape)
tol = dict(atol=1e-5, rtol=1e-5)
assert np.all(np.isclose(disps, df.data, **tol))
def test_coefficientFieldToDisplacementField(): def test_coefficientFieldToDisplacementField():
nldir = op.join(datadir, 'nonlinear') nldir = op.join(datadir, 'nonlinear')
...@@ -204,17 +232,27 @@ def test_coefficientFieldToDisplacementField(): ...@@ -204,17 +232,27 @@ def test_coefficientFieldToDisplacementField():
ref = op.join(nldir, 'ref.nii.gz') ref = op.join(nldir, 'ref.nii.gz')
cf = op.join(nldir, 'coefficientfield.nii.gz') cf = op.join(nldir, 'coefficientfield.nii.gz')
df = op.join(nldir, 'displacementfield.nii.gz') df = op.join(nldir, 'displacementfield.nii.gz')
dfnp = op.join(nldir, 'displacementfield_no_premat.nii.gz')
src = fslimage.Image(src) src = fslimage.Image(src)
ref = fslimage.Image(ref) ref = fslimage.Image(ref)
cf = fnirt.readFnirt(cf, src, ref) cf = fnirt.readFnirt(cf, src, ref)
rdf = fnirt.readFnirt(df, src, ref) rdf = fnirt.readFnirt(df, src, ref)
rdfnp = fnirt.readFnirt(dfnp, src, ref)
adf = nonlinear.convertDisplacementType(rdf) adf = nonlinear.convertDisplacementType(rdf)
adfnp = nonlinear.convertDisplacementType(rdfnp)
tol = dict(atol=1e-5, rtol=1e-5) rcnv = nonlinear.coefficientFieldToDisplacementField(cf)
acnv = nonlinear.coefficientFieldToDisplacementField(cf,
rcnv = nonlinear.coefficientFieldToDisplacementField(cf) dispType='absolute')
acnv = nonlinear.coefficientFieldToDisplacementField(cf, dispType='absolute') acnvnp = nonlinear.coefficientFieldToDisplacementField(cf,
dispType='absolute',
premat=False)
rcnvnp = nonlinear.coefficientFieldToDisplacementField(cf,
premat=False)
assert np.all(np.isclose(rcnv.data, rdf.data, **tol)) tol = dict(atol=1e-5, rtol=1e-5)
assert np.all(np.isclose(acnv.data, adf.data, **tol)) assert np.all(np.isclose(rcnv.data, rdf .data, **tol))
assert np.all(np.isclose(acnv.data, adf .data, **tol))
assert np.all(np.isclose(rcnvnp.data, rdfnp.data, **tol))
assert np.all(np.isclose(acnvnp.data, adfnp.data, **tol))
File added
File added
File added
File added
File added
1.130654884 -0.02090760163 0.05273442572 -0.523881946
0.01777234539 0.9990179929 0.2039857328 5.806280637
-0.003319001082 -0.2740303429 1.071017063 0.4915523243
0 0 0 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment