Basic calculations with medical image data

micalc:  Performs basic mathematics with data sets
         File formats are automatically identified by their file extension.
Usage:
  Binary operation with data sets and/or scalar numbers:
       micalc [-if1 <input-file1> | -in1 <input-number1>] -op <operation(+,-,*,/,lcorr,kcorr)> [-if2 <input-file2> | -in2 <input-number1>] -of <output-file>
  Accumulation of one data set:
       micalc -if <input-file> -op <operation(+,*)>
  Transformation (magnitude, logarithm, negation, inversion, or acos) of one data set:
       micalc -if <input-file> -op <operation(abs,log,-,/,acos)> -of <output-file>
  Statistics of one data set:
       micalc -if <input-file> [-mean <time-mean-file>] [-fluct <relative-time-stdev-file>] [-tcourse <time-course of all voxels>] [-hist <histogram> -histmin <minval> -histmax <maxval> -histslots <numofslots> -rightstairs -histfract]
Extra options:
	-mask <Mask for data>
File read options:
	-date: Date of scan [yyyymmdd] (default=20090930yyyymmdd)
	-fp: FOV in phase direction [mm] (default=220.0mm)
	-fr: FOV in read direction [mm] (default=220.0mm)
	-fs: FOV in slice direction [mm] (default=5.0mm)
	-nr: Number of consecutive measurements (default=1)
	-nx: Number of points in read direction (default=128)
	-ny: Number of points in phase direction (default=128)
	-nz: Number of points in slice direction (default=1)
	-pbirth: Patients date of birth [yyyymmdd] (default=00000000yyyymmdd)
	-pid: Unique patient identifier (default=Unknown)
	-pname: Full patient name (default=Unknown)
	-psex: Patients sex (options=M F O , default=O)
	-pweight: Patients weight [kg] (default=50.0kg)
	-scient: Scientist Name (default=Unknown)
	-sd: Inter-slice distance (from center to center) [mm] (default=10.0mm)
	-serd: Series Description (default=Unknown)
	-serno: Series Number (default=1)
	-st: Slice thickness [mm] (default=5.0mm)
	-stud: Study Description (default=Unknown)
	-tcname: Name of transmit coil (default=Unknown)
	-te: Time-to-echo of the sequence [ms] (default=80.0ms)
	-time: Time of scan [hhmmss] (default=153257hhmmss)
	-tr: Time between consecutive excitations [ms] (default=1000.0ms)
	-cplx: Treat data as complex and extract the given component (options=none abs pha real imag , default=none)
	-ds: Dataset index to extract if multiple datasets are read
	-filter: Read only those datasets which protocol parameter 'key' contains the string 'value' (given in the format 'key=value')
	-fmap: For reduced memory usage, keep filemapping after reading (raw) data, but writing into the array will result in a crash
	-jdx: If multiple JDX arrays are present, select this
	-rdialect: Read data using given dialect of the format. (default is no dialect)
	-rf: Read format, use it to override file extension (options=autodetect 3db asc coi dat dcm double float gz hdr ima jdx mag mhd nii ph png pos reg s16bit s32bit s8bit smp u16bit u32bit u8bit v vtk , default=autodetect)
	-skip: Skip this amount of bytes before reading the raw data (default=0)
File write options:
	-append: Append to existing file, only for raw data
	-split: Force splitting of protocol-data pairs into separate files.
	-type: Image representation type (options=automatic float double s32bit u32bit s16bit u16bit s8bit u8bit , default=automatic)
	-wdialect: Write data using given dialect of the format. (default is no dialect)
	-wf: Write format, use it to override file extension (options=autodetect 3db asc coi dat dcm double float gz hdr ima jdx mag mhd nii ph png pos reg s16bit s32bit s8bit smp u16bit u32bit u8bit v vtk , default=autodetect)
	-wp: Store the protocol separately to this file.
Filters applied to input files:
	-align <filename,In-plane blowup factor> : Align data to the geometry (voxel locations) of an external file
	-detrend <Number of low frequency components to be removed> : Remove slow drift over time
	-genmask <lower threshold,upper threshold> : Create mask including all voxels with value in given range
	-isotrop <voxelsize> : make image voxels isotrop through interpolation (image geometry will not change)
	-max <Maximum value> : Clip all values above maximum value
	-merge : Merge datasets into a single dataset by expanding the time dimension
	-min <Minumum value> : Clip all values below mininum value
	-noNaN <Replacement value> : Replaces every NaN by the given value
	-pflip : Flip data in phase direction
	-prange <Single value or range, optionally with increment (e.g. 1-10:3)> : Select range in phase direction
	-resize <slice-size,phase-size,read-size> : Resize image data
	-reslice <requested orientation (sagittal coronal axial )> : reslices the image to a given orientation
	-rflip : Flip data in read direction
	-rot <angle [deg],kernel size [pixel]> : In-plane rotation
	-rrange <Single value or range, optionally with increment (e.g. 1-10:3)> : Select range in read direction
	-scale <Slope,Offset> : Rescale image values
	-sflip : Flip data in slice direction
	-shift <readDirection shift [pixel],phaseDirection shift [pixel],sliceDirection shift [pixel]> : Shift data spatially
	-splice <dimension of the data to be spliced (time slice phase read none )> : splices the image in the given dimension
	-srange <Single value or range, optionally with increment (e.g. 1-10:3)> : Select range in slice direction
	-swapdim <[rps][-],[rps][-],[rps][-]> : swap/reflect dimensions by specifying a direction triple with optional reflection sign appended
	-tile <columns> : Combine slices into a square 2D image
	-trange <Single value or range, optionally with increment (e.g. 1-10:3)> : Select range in time direction
	-typemax <Datatype> : Clip all values above maximum of a specific datatype
	-typemin <Datatype> : Clip all values below mininum of a specific datatype
	-usemask <filename> : Create 1D dataset using mask from file
Other options:
	-v <loglevel> or <component:loglevel> for debugging/tracing all components or a single component, respectively. Possible values for loglevel are: 0(noLog), 1(errorLog), 2(warningLog), 3(infoLog), 4(significantDebug), 5(normalDebug), 6(verboseDebug).
	-h, --help, -help, --version : Print help text or version information
Supported file extensions(formats):
	3db 	 (Iris3D binary data)
	asc 	 (ASCII)
	coi 	 (JCAMP-DX data sets)
	dat 	 (Matlab ascii 2D data matrix)
	dcm 	 (DICOM, dialects: siemens )
	double 	 (double raw data)
	float 	 (float raw data)
	gz 	 (GNU-Zip container for other formats)
	hdr 	 (NIFTI/ANALYZE, dialects: fsl )
	ima 	 (DICOM, dialects: siemens )
	jdx 	 (JCAMP-DX image format)
	mag 	 (DICOM, dialects: siemens )
	mhd 	 (MetaImage)
	nii 	 (NIFTI/ANALYZE, dialects: fsl )
	ph 	 (DICOM, dialects: siemens )
	png 	 (Portable Network Graphics)
	pos 	 (x-y positions of non-zeroes in ASCII)
	reg 	 (Ansoft HFSS ASCII)
	s16bit 	 (signed 16 bit raw data)
	s32bit 	 (signed 32 bit raw data)
	s8bit 	 (signed 8 bit raw data)
	smp 	 (JCAMP-DX data sets)
	u16bit 	 (unsigned 16 bit raw data)
	u32bit 	 (unsigned 32 bit raw data)
	u8bit 	 (unsigned 8 bit raw data)
	v 	 (Vista, dialects: common odin lipsia )
	vtk 	 (Visualization Toolkit)

Some examples how to use micalc:

Calculate the difference between two DICOM files 'image1.dcm' 'and image2.dcm' and store it in float-type raw data file 'diff.float':
       micalc -if1 image1.dcm -op '-' -if2 image2.dcm -of diff.float
      

Multiply image magnitude of Vista file 'image.v' by a factor 10:

       micalc -if1 image.v -op '*' -in2 10 -of image.v
      

Accumulate all values in file 'image.float' and write result to console:

       micalc -if image.float -op '+'
      

Negate values (invert sign) of file image.hdr and write result to neg.hdr

       micalc -if image.hdr -op '-' neg.hdr
      

Print statistics about file 'data.asc' to console:

       micalc -if data.asc
      

Write time-course mean and fluctuation (relative standard deviation over time) of file 'tcourse.v' to file 'mean.v' and 'stdev.v', respectively:

       micalc -if tcourse.v -mean mean.v -fluct stdev.v
      

Calculate histogram in interval (0.0,100.0) with 64 steps of DICOMs in directory cbv:

       micalc -if cbv -hist histogram.asc -histmin 0.0 -histmax 100.0 -histslots 64
      

Please note that it might be necessary to quote the operation argument (as shown above) in order to prevent the shell from expanding it.


Generated on Wed Sep 30 15:33:04 2009 by  doxygen 1.5.6