Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
FSL
fslpy
Commits
69de2dd7
Commit
69de2dd7
authored
Jan 27, 2020
by
Paul McCarthy
🚵
Browse files
Merge branch 'rf/image_save_28' into 'v2.8'
Rf/image save 28 See merge request fsl/fslpy!189
parents
7ef62d9a
daa4a147
Pipeline
#4887
failed with stages
in 49 minutes
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
COPYRIGHT
View file @
69de2dd7
Copyright 2016-20
19
University of Oxford, Oxford, UK
Copyright 2016-20
20
University of Oxford, Oxford, UK
LICENSE
View file @
69de2dd7
The fslpy library
Copyright 2016-20
19
University of Oxford, Oxford, UK.
Copyright 2016-20
20
University of Oxford, Oxford, UK.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
...
...
fsl/data/image.py
View file @
69de2dd7
...
...
@@ -1362,6 +1362,10 @@ class Image(Nifti):
def
save
(
self
,
filename
=
None
):
"""Saves this ``Image`` to the specifed file, or the :attr:`dataSource`
if ``filename`` is ``None``.
Note that calling ``save`` on an image with modified data will cause
the entire image data to be loaded into memory if it has not already
been loaded.
"""
import
fsl.utils.imcp
as
imcp
...
...
tests/test_image_advanced.py
View file @
69de2dd7
...
...
@@ -187,6 +187,15 @@ def _test_image_indexed_save(threaded):
# make sure the data range is correct
assert
img
.
dataRange
==
(
0
,
40
)
# Save the image to a different
# location (no changes to data though)
filename
=
op
.
join
(
testdir
,
'image2.nii.gz'
)
img
.
save
(
filename
)
# known data range
# should not have changed
assert
img
.
dataRange
==
(
0
,
40
)
# change some data
data
=
np
.
zeros
((
100
,
100
,
100
))
data
[:]
=
45
...
...
@@ -195,35 +204,21 @@ def _test_image_indexed_save(threaded):
if
threaded
:
img
.
getImageWrapper
().
getTaskThread
().
waitUntilIdle
()
# save the image
# save the image - this will
# cause the image data to be
# loaded into memory
img
.
save
()
assert
img
.
dataRange
==
(
0
,
45
)
# access the data - index should
# get rebuilt to this point
img
[...,
0
]
img
[...,
40
]
if
threaded
:
img
.
getImageWrapper
().
getTaskThread
().
waitUntilIdle
()
# make sure we got the modified data
assert
img
.
dataRange
==
(
0
,
45
)
img
[...,
49
]
if
threaded
:
img
.
getImageWrapper
().
getTaskThread
().
waitUntilIdle
()
# make sure we got the modified data
assert
img
.
dataRange
==
(
0
,
49
)
assert
np
.
all
(
img
[...,
40
]
==
data
)
# Finally, reload, and verify the change
img
=
fslimage
.
Image
(
filename
)
assert
np
.
all
(
img
[...,
40
]
==
45
)
assert
np
.
all
(
img
[...,
40
]
==
data
)
@
pytest
.
mark
.
longtest
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment