minc2

Preliminary MINC2 support

Use with care; I haven’t tested this against a wide range of MINC files.

If you have a file that isn’t read correctly, please send an example.

Test reading with something like:

import nibabel as nib
img = nib.load('my_funny.mnc')
data = img.get_fdata()
print(data.mean())
print(data.max())
print(data.min())

and compare against command line output of:

mincstats my_funny.mnc

Hdf5Bunch(var)

Make object for accessing attributes of variable

Minc2File(mincfile)

Class to wrap MINC2 format file

Minc2Header(data_dtype, shape, zooms)

Minc2Image(dataobj, affine[, header, extra, ...])

Class for MINC2 images

Hdf5Bunch

class nibabel.minc2.Hdf5Bunch(var)

Bases: object

Make object for accessing attributes of variable

__init__(var)

Minc2File

class nibabel.minc2.Minc2File(mincfile)

Bases: Minc1File

Class to wrap MINC2 format file

Although it has some of the same methods as a Header, we use this only when reading a MINC2 file, to pull out useful header information, and for the method of reading the data out

__init__(mincfile)
get_data_dtype()
get_data_shape()
get_scaled_data(sliceobj=())

Return scaled data for slice definition sliceobj

Parameters:
sliceobjtuple, optional

slice definition. If not specified, return whole array

Returns:
scaled_arrarray

array from minc file with scaling applied

Minc2Header

class nibabel.minc2.Minc2Header(data_dtype: npt.DTypeLike = <class 'numpy.float32'>, shape: Sequence[int] = (0, ), zooms: Sequence[float] | None = None)

Bases: MincHeader

__init__(data_dtype: npt.DTypeLike = <class 'numpy.float32'>, shape: Sequence[int] = (0, ), zooms: Sequence[float] | None = None)
classmethod may_contain_header(binaryblock)

Minc2Image

class nibabel.minc2.Minc2Image(dataobj: ArrayLike, affine: ndarray | None, header: FileBasedHeader | Mapping | None = None, extra: Mapping | None = None, file_map: Mapping[str, FileHolder] | None = None)

Bases: Minc1Image

Class for MINC2 images

The MINC2 image class uses the default header type, rather than a specific MINC header type - and reads the relevant information from the MINC file on load.

Initialize image

The image is a combination of (array-like, affine matrix, header), with optional metadata in extra, and filename / file-like objects contained in the file_map mapping.

Parameters:
dataobjobject

Object containing image data. It should be some object that returns an array from np.asanyarray. It should have a shape attribute or property

affineNone or (4,4) array-like

homogeneous affine giving relationship between voxel coordinates and world coordinates. Affine can also be None. In this case, obj.affine also returns None, and the affine as written to disk will depend on the file format.

headerNone or mapping or header instance, optional

metadata for this image format

extraNone or mapping, optional

metadata to associate with image that cannot be stored in the metadata of this image type

file_mapmapping, optional

mapping giving file information for this image format

__init__(dataobj: ArrayLike, affine: ndarray | None, header: FileBasedHeader | Mapping | None = None, extra: Mapping | None = None, file_map: Mapping[str, FileHolder] | None = None)

Initialize image

The image is a combination of (array-like, affine matrix, header), with optional metadata in extra, and filename / file-like objects contained in the file_map mapping.

Parameters:
dataobjobject

Object containing image data. It should be some object that returns an array from np.asanyarray. It should have a shape attribute or property

affineNone or (4,4) array-like

homogeneous affine giving relationship between voxel coordinates and world coordinates. Affine can also be None. In this case, obj.affine also returns None, and the affine as written to disk will depend on the file format.

headerNone or mapping or header instance, optional

metadata for this image format

extraNone or mapping, optional

metadata to associate with image that cannot be stored in the metadata of this image type

file_mapmapping, optional

mapping giving file information for this image format

classmethod from_file_map(file_map, *, mmap=True, keep_file_open=None)

Class method to create image from mapping in file_map

Parameters:
file_mapdict

Mapping with (kay, value) pairs of (file_type, FileHolder instance giving file-likes for each file needed for this image type.

mmap{True, False, ‘c’, ‘r’}, optional, keyword only

mmap controls the use of numpy memory mapping for reading image array data. If False, do not try numpy memmap for data array. If one of {‘c’, ‘r’}, try numpy memmap with mode=mmap. A mmap value of True gives the same behavior as mmap='c'. If image data file cannot be memory-mapped, ignore mmap value and read array from file.

keep_file_open{ None, True, False }, optional, keyword only

keep_file_open controls whether a new file handle is created every time the image is accessed, or a single file handle is created and used for the lifetime of this ArrayProxy. If True, a single file handle is created and used. If False, a new file handle is created every time the image is accessed. If file_map refers to an open file handle, this setting has no effect. The default value (None) will result in the value of nibabel.arrayproxy.KEEP_FILE_OPEN_DEFAULT being used.

Returns:
imgDataobjImage instance
header_class

alias of Minc2Header