0 purchases
ImageSplit 0.3.4
ImageSplit is a utility for splitting very large image volumes into slices or multiple overlapping sub-volumes, and for recombining sub-volumes into a one or more volumes. ImageSplit can also convert the underlying data types.
ImageSplit was originally developed to process medical image volumes. As such it mostly supports MetaIO (.mhd/.mha) files at present. There is some limited ability to read .vge image volumes and to read/write monochrome TIFF files.
Note that many TIFF viewers do not support the full range of datatypes that can be written out by ImageSplit. If can you cannot view output TIFFs, try using a different TIFF Viewer such as ImageJ.
ImageSplit is designed to prioritise low memory usage over performance, so that large volumes can be easily processed with limited memory resources.
Author: Tom Doel
Installing
pip install imagesplit
Notes:
We recommend you use pip to install ImageSplit.
Ensure you have Python 2.7 or 3.5 or later installed
(especially for macOS users): we suggest you do not modify the system installation of Python 2.7. Instead install a separate version of Python for development purposes (for example, using Homebrew), or use virtualenv to create a python virtual environment which you can safely modify without affecting the system installation.
If you have Python 2 and Python 3 insatlled, pip2 may map to Python 2 and pip3 may map to Python 3. This will depend on your installation
If you get permission errors when using pip, you may be trying to modify the system Python installation. This is not recommended. Instead install a local version of Python for development, or use a virtual environment (virtualenv).
Example usage
Please see detailed usage below.
Here is an example which splits files:
imagesplit --input input_data/image.vge --out output_data/split_image -s c --format tiff -z --rescale -50 350 --type uchar
This command will:
split the volume file with header input_data/image.vge
into coronal slices (-s c)
saving them in the output_data folder with the filenames split_image_0000.tiff, split_image_0001.tiff etc
The file format is tiff (–format tiff)
with default compression (-z)
and data type unsigned char (–type uchar)
The data will be normalised (rescaled) between minimum and maximum values -50 and 350 (–rescale -50 350)
Here is an example which combines files which are derived from files produced by a previous splitting:
imagesplit --input input_data/split_mask.mhd --out output_data/combined_image --format mhd --descriptor output_data/split_image__info.imagesplit
This command will:
Combine multiple images in the folder input_data/split_mask_*.mhd into a single output file output_data/combined_image.mhd
The splitting of the input files is determined from the descriptor file output_data/split_image__info.imagesplit generated by a previous splitting command
If you are recombining the files that were originally split, you don’t need to specify –input. If however you are combining files that are not the ones that were originally split, but which are derived from those, then specify –input will modify the filenames in the descriptor to match the input files.
For example, if you split an image file into multiple subimages, and then compute a mask from each subimage, you can use the original descriptor file to assemble the masks into a combined mask volume. The descriptor is the one from the splitting, but the input filename points to the mask files to combine. The descriptor file will be loaded but the filenames modified to match the mask filenames.
Detailed Usage
imagesplit.py [-h] -i INPUT [-o OUT] [-l OVERLAP] [-m MAX [MAX ...]] [-x STARTINDEX] [-t TYPE] [-f FORMAT] [-r [RESCALE [RESCALE ...]]] [-z [COMPRESS]] [-s SLICE] [-a AXIS [AXIS ...]] [-d DESCRIPTOR] [--test]
warning:
ImageSplit will overwrite existing output files. Make sure you have your images backed up before you use this utility, to prevent accidental data loss.
Arguments:
Input and output filenames:
-i INPUT, --input INPUT
Name of input file, or filename prefix for a set of files. If you are combining multiple files using a descriptor, with filenames of the form *_0001.mhd, be sure to omit the *_0001 from the input filename, as it will be appended automatically.
-o OUT, --out OUT
Name of output file, or filename prefix if more than one file is output
-x STARTINDEX, --startindex STARTINDEX
Start index for filename suffix when loading or saving
a sequence of files
-d DESCRIPTOR
Specifies that the input files should be assembled using the file DESCRIPTOR as a guide. The DESCRIPTOR file (.imagesplit) is generated from a previous splitting, and stores file offsets which allow you to assemble subvolumes back into a volume.
The filenames in the DESCRIPTOR file will be overridden by the specified INPUT file name.
This allows you to combine files according to a template generated from a different file splitting.
Specify how to split the image:
-l OVERLAP, --overlap OVERLAP
Number of voxels to overlap between output images. If
not specified, output images will not overlap
-m MAX, --max MAX
Maximum number of voxels in each dimension in each
output file. MAX can be a scalar or vector corresponding
to each image dimension. The file will be optimally
split such that each file output dimension is less
than or equal to this maximum.
Specify file format, data type, and whether data should be rescaled (normalised):
-t TYPE, --type TYPE
Output data type (default: same as input file datatype)
-f FORMAT, --format FORMAT
Output file format such as mhd, tiff (default: same as input file format)
-r RESCALE, --rescale RESCALE
Rescale image between the specified min and max
values. If no RESCALE values are specified, use the volume limits.
-z COMPRESS, --compress COMPRESS
Enables compression (default if -Z not specified: no compression). Valid
values depend on the output file format. -z with no
COMPRESS argument will choose a suitable compression for
this file format. For TIFF files, the default is Adboe
deflat and other valid values are those supported by PIL.
Specify output orientation:
-s SLICE, --slice SLICE
Divide image into slices along the specified axis.
Choose 1, 2, 3 etc to select an axis relative to the
current image orientation, or c, s, a to select an
absolute orientation.This argument cannot be used with –axis, –max or –overlap.
-a AXIS, --axis AXIS
Axis ordering (default 1 2 3). Specifies the global
axis corresponding to each dimension in the image
file. The first value is the global axis represented
by the first dimension in the file, and so on. One
value for each dimension, dimensions are numbered
1,2,3,… and a negative value means that axis is
flipped. This cannot be used with –slice
Help and testing:
--test
If set, no writing will be performed to the output files
-h, --help
Show this help message and exit
Contributing
Please see the contributing guidelines.
Useful links
Source code repository
Documentation
Licensing and copyright
ImageSplit is released under the BSD-3 licence. Please see the license file for details.
Acknowledgements
ImageSplit was originally developed as part of the GIFT-Surg project in the Centre for Medical Image Computing (CMIC) at University College London (UCL).
Code published prior to September 2018 is Copyright 2017-2018 University College London.
The GIFT-Surg project is supported by Wellcome and EPSRC.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.