MINCLOOKUP(1) | MINC User's Guide | MINCLOOKUP(1) |
minclookup - perform lookup table conversions on minc files
minclookup [<options>] <in1>.mnc <out>.mnc
Minclookup will perform a lookup table operation on each voxel of a minc file. A lookup table consists of a list of input values with matching output values. Each voxel of the input file is found in the lookup table and the corresponding output value is written out. These output values can be either scalar or vector values so, for example, a colour lookup table would have four columns: one column for input values and one column for each of red, green and blue output values.
Lookup tables can take one of two forms: continuous or discrete.
A continuous lookup table is for treating voxel values as continuous (real) values and converting values by doing interpolation between the values given in the lookup table. A discrete lookup table treats input values as integers and deals with them as completely independent entries, doing no interpolation.
The most common use of continuous lookup tables is for converting intensity values into RGB colours. To make the lookup tables simpler, the input values are all rescaled into the range zero to one. By default, the smallest value in the file maps to zero and the largest maps to one. This value is then found in the lookup table, usually between two entries in the table (the table is always sorted in ascending order of input values). Linear interpolation is then done on each output column and the resultant value (or values) is written to the output file. If there is more than one output value per input value, then the dimension vector_dimension is added to the output file with length equal to the number of output columns in the lookup table. For input values outside the range zero to one, the nearest table value is used.
Discrete lookup tables are usually used for remapping label values. Each input value is treated as an integer (it is not rescaled) and if it is found in the lookup table, then the corresponding value (or values) is written to the output file. If it is not found, then a null value is written out (zero by default). No interpolation is done with discrete lookup tables - to get a non-null output value, there must be an entry in the table.
Note that options can be specified in abbreviated form (as long as they are unique) and can be given anywhere on the command line.
To get hot-metal RGB images from an MRI file:
minclookup -hotmetal input.mnc output.mnc
To convert the labels in a minc label file, use -discrete:
minclookup -discrete -lookup_table lookupfile \
in_labels.mnc out_labels.mnc
where lookupfile is a file containing entries to map label 2 to 4 and label 3 to 5:
2 4
3 5
You could also specify this lookup table on the command line:
minclookup -discrete -lut_string '2 4;3 5' \
in_labels.mnc out_labels.mnc
To get a grey RGB file, with red for values less than the minimum and green for values greater than the minimum, you can give two zero entries and two one entries. The first zero is used for negative values, the second zero is used for interpolation to the next entry. There is no ambiguity about how to handle a value of exactly zero because the first and last values of the table are handled in a special way to make sure that they are treated as within range if this sort of two-entry situation occurs.
minclookup -lookup_table - input.mnc output.mnc <<EOF
0 1 0 0
0 0 0 0
1 1 1 1
1 0 1 0
EOF
To invert a scalar image, you could use minclookup:
minclookup -lut_string '0 1;1 0' in.mnc out.mnc
Peter Neelin
Copyright © 1995 by Peter Neelin
$Date: 2004-05-20 21:52:08 $ |