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 (logaritm, negation, or inversion) of one data set:
       micalc -if <input-file> -op <operation(log,-,/)> -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>]
Extra options:
	-mask <Mask for data>
File read options:
	-fx: FOV in read direction [mm] (default=220.0mm)
	-fy: FOV in phase direction [mm] (default=220.0mm)
	-nr: Number of consecutive measurements (default=1)
	-nx: Spatial resolution in read direction (default=128)
	-ny: Spatial resolution in phase direction (default=128)
	-pbirth: Patients date of birth in <year><mont><day> (default=19730913)
	-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: TransmitCoil Name (default=Unknown)
	-te: Time-to-echo of the sequence [ms] (default=80.0ms)
	-tr: Time between consecutive excitations [ms] (default=1000.0ms)
	-abs: Treat data as complex and extract magnitude
	-dir: Try to combine multiple files found in directory
	-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')
	-jdx: If multiple JDX arrays are present, select this
	-pha: Treat data as complex and extract the phase
	-rdialect: Read data using given dialect of the format. (default is no dialect)
	-rf: Read format, use it to override file extension (options=autodetect asc coi dat dcm double float gz hdr ima img jdx mag mhd nii ph pos 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: Split protocol-data pairs into separate files. "%a" (if given in the name) will be replaced by the seriesnumber and its description.
	-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 asc coi dat dcm double float gz hdr ima img jdx mag mhd nii ph pos s16bit s32bit s8bit smp u16bit u32bit u8bit v vtk , default=autodetect)
	-wp: Store the protocol separately to this file."%a" (if given in the name) will be replaced by the seriesnumber and its description.
Filters applied to input files:
	-max <Maximum value> : Clip all values above maximum value
	-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> : reslices the image to have a given orientation if necessary
	-rflip : Flip data in read direction
	-rot <Rotate by this angle> : 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
	-srange <Single value or range, optionally with increment (e.g. 1-10:3)> : Select range in slice direction
	-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
Other options:
	-v <loglevel> or <component:loglevel> for debugging/tracing all components or a sinlge component, respectively. Possible values for loglevel are: 0(noLog), 1(errorLog), 2(warningLog), 3(infoLog), 4(significantDebug), 5(normalDebug), 6(verboseDebug).
Supported file extensions(formats):
	asc 	 (ASCII)
	coi 	 (JCAMP-DX data sets)
	dat 	 (Matlab ascii 2D data matrix)
	dcm 	 (DICOM)
	double 	 (double raw data)
	float 	 (float raw data)
	gz 	 (GNU-Zip container for other formats)
	hdr 	 (ANALYZE)
	ima 	 (DICOM)
	img 	 (ANALYZE)
	jdx 	 (JCAMP-DX image format)
	mag 	 (DICOM)
	mhd 	 (MetaImage)
	nii 	 (NIFTI, dialects: fsl )
	ph 	 (DICOM)
	pos 	 (x-y positions of non-zeroes in 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 xlipsia )
	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 -dir -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 Sat Jun 14 12:31:23 2008 by  doxygen 1.5.1