Struct nifti::header::NiftiHeader [−][src]
pub struct NiftiHeader { pub sizeof_hdr: i32, pub data_type: [u8; 10], pub db_name: [u8; 18], pub extents: i32, pub session_error: i16, pub regular: u8, pub dim_info: u8, pub dim: [u16; 8], pub intent_p1: f32, pub intent_p2: f32, pub intent_p3: f32, pub intent_code: i16, pub datatype: i16, pub bitpix: i16, pub slice_start: i16, pub pixdim: [f32; 8], pub vox_offset: f32, pub scl_slope: f32, pub scl_inter: f32, pub slice_end: i16, pub slice_code: u8, pub xyzt_units: u8, pub cal_max: f32, pub cal_min: f32, pub slice_duration: f32, pub toffset: f32, pub glmax: i32, pub glmin: i32, pub descrip: Vec<u8>, pub aux_file: [u8; 24], pub qform_code: i16, pub sform_code: i16, pub quatern_b: f32, pub quatern_c: f32, pub quatern_d: f32, pub quatern_x: f32, pub quatern_y: f32, pub quatern_z: f32, pub srow_x: [f32; 4], pub srow_y: [f32; 4], pub srow_z: [f32; 4], pub intent_name: [u8; 16], pub magic: [u8; 4], pub endianness: Endianness, }
The NIFTI-1 header data type. All fields are public and named after the specification's header file. The type of each field was adjusted according to their use and array limitations. A builder is also available.
Examples
use nifti::{NiftiHeader, Endianness}; let hdr1 = NiftiHeader::from_file("0000.hdr")?; let hdr2 = NiftiHeader::from_file("0001.hdr.gz")?; let hdr3 = NiftiHeader::from_file("4321.nii.gz")?;
Or to build one yourself:
use nifti::NiftiHeaderBuilder; let hdr = NiftiHeaderBuilder::default() .cal_min(0.) .cal_max(128.) .build()?; assert_eq!(hdr.cal_min, 0.); assert_eq!(hdr.cal_max, 128.);
Fields
sizeof_hdr: i32
Header size, must be 348
data_type: [u8; 10]
Unused in NIFTI-1
db_name: [u8; 18]
Unused in NIFTI-1
extents: i32
Unused in NIFTI-1
session_error: i16
Unused in NIFTI-1
regular: u8
Unused in NIFTI-1
dim_info: u8
MRI slice ordering
dim: [u16; 8]
Data array dimensions
intent_p1: f32
1st intent parameter
intent_p2: f32
2nd intent parameter
intent_p3: f32
3rd intent parameter
intent_code: i16
NIFTI_INTENT_* code
datatype: i16
Defines the data type!
bitpix: i16
Number of bits per voxel
slice_start: i16
First slice index
pixdim: [f32; 8]
Grid spacings
vox_offset: f32
Offset into .nii file to reach the volume
scl_slope: f32
Data scaling: slope
scl_inter: f32
Data scaling: offset
slice_end: i16
Last slice index
slice_code: u8
Slice timing order
xyzt_units: u8
Units of pixdim[1..4]
cal_max: f32
Max display intensity
cal_min: f32
Min display intensity
slice_duration: f32
Time for 1 slice
toffset: f32
Time axis shift
glmax: i32
Unused in NIFTI-1
glmin: i32
Unused in NIFTI-1
descrip: Vec<u8>
Any text you like
aux_file: [u8; 24]
Auxiliary filename
qform_code: i16
NIFTI_XFORM_* code
sform_code: i16
NIFTI_XFORM_* code
quatern_b: f32
Quaternion b param
quatern_c: f32
Quaternion c param
quatern_d: f32
Quaternion d param
quatern_x: f32
Quaternion x shift
quatern_y: f32
Quaternion y shift
quatern_z: f32
Quaternion z shift
srow_x: [f32; 4]
1st row affine transform
srow_y: [f32; 4]
2nd row affine transform
srow_z: [f32; 4]
3rd row affine transform
intent_name: [u8; 16]
'name' or meaning of data
magic: [u8; 4]
Magic code. Must be b"ni1\0"
or b"ni+\0"
endianness: Endianness
Original data Endianness
Methods
impl NiftiHeader
[src]
impl NiftiHeader
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<NiftiHeader>
[src]
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<NiftiHeader>
Retrieve a NIFTI header, along with its byte order, from a file in the file system. If the file's name ends with ".gz", the file is assumed to need GZip decoding.
pub fn from_stream<S: Read>(input: S) -> Result<NiftiHeader>
[src]
pub fn from_stream<S: Read>(input: S) -> Result<NiftiHeader>
Read a NIfTI-1 header, along with its byte order, from the given byte stream. It is assumed that the input is currently at the start of the NIFTI header.
pub fn data_type(&self) -> Result<NiftiType>
[src]
pub fn data_type(&self) -> Result<NiftiType>
Get the data type as a validated enum.
pub fn xyzt_to_space(&self) -> Result<Unit>
[src]
pub fn xyzt_to_space(&self) -> Result<Unit>
Get the spatial units type as a validated unit enum.
pub fn xyzt_to_time(&self) -> Result<Unit>
[src]
pub fn xyzt_to_time(&self) -> Result<Unit>
Get the time units type as a validated unit enum.
pub fn xyzt_units(&self) -> Result<(Unit, Unit)>
[src]
pub fn xyzt_units(&self) -> Result<(Unit, Unit)>
Get the xyzt units type as a validated pair of space and time unit enum.
pub fn slice_order(&self) -> Result<SliceOrder>
[src]
pub fn slice_order(&self) -> Result<SliceOrder>
Get the slice order as a validated enum.
pub fn intent(&self) -> Result<Intent>
[src]
pub fn intent(&self) -> Result<Intent>
Get the intent as a validated enum.
pub fn qform(&self) -> Result<XForm>
[src]
pub fn qform(&self) -> Result<XForm>
Get the qform coordinate mapping method as a validated enum.
pub fn sform(&self) -> Result<XForm>
[src]
pub fn sform(&self) -> Result<XForm>
Get the sform coordinate mapping method as a validated enum.
Trait Implementations
impl Debug for NiftiHeader
[src]
impl Debug for NiftiHeader
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for NiftiHeader
[src]
impl Clone for NiftiHeader
fn clone(&self) -> NiftiHeader
[src]
fn clone(&self) -> NiftiHeader
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl PartialEq for NiftiHeader
[src]
impl PartialEq for NiftiHeader
fn eq(&self, other: &NiftiHeader) -> bool
[src]
fn eq(&self, other: &NiftiHeader) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &NiftiHeader) -> bool
[src]
fn ne(&self, other: &NiftiHeader) -> bool
This method tests for !=
.
impl Default for NiftiHeader
[src]
impl Default for NiftiHeader
fn default() -> NiftiHeader
[src]
fn default() -> NiftiHeader
Returns the "default value" for a type. Read more
Auto Trait Implementations
impl Send for NiftiHeader
impl Send for NiftiHeader
impl Sync for NiftiHeader
impl Sync for NiftiHeader