MINCRESHAPE

NAME

mincreshape - cuts a hyperslab out of a minc file (with dimension re-ordering)

SYNOPSIS

mincreshape
[<options>] <infile>.mnc <outfile>.mnc

DESCRIPTION

Mincreshape's
main job is to chop a hyperslab out of a minc file and put it into a
new minc file. "What is a hyperslab?", you ask. It is simply a
multi-dimensional box specified with a starting index (a vector giving
a voxel coordinate) and a count vector (a number of voxels along each
axis). A single slice out of a volume is a hyperslab (with a count of
1 in the slice direction), a small block pulled out of a large volume
is a hyperslab, a single echo volume out of a multi-echo MRI dataset
is a hyperslab, one time point out of a dynamic acquisition is a
hyperslab - you get the idea. Check out the -start, -count and
-dimrange options for more details on how to do this (and look at the
examples!). If you are pulling out only one point along a dimension,
you have the option of making the dimension disappear, so mincreshape
gives you the ability to reduce the dimensionality of a minc file. As
well, you aren't constrained to specify a hyperslab that is only
within the input file, you can extend beyond the bounds of the
dimensions in the input file, and furthermore you can give a count
that will flip the data along a dimension.

As if all that is not enough, mincreshape has the ability to
re-order dimensions. The most obvious case is converting a transverse
image into a coronal image. But you can type a list of dimension names
to get an arbitrary order of dimensions.

You want more!?! Okay, okay. Mincreshape makes all of the minc
library ICV operations available on the command line. For those who
like things defined, an ICV is an image conversion variable (don't ask
me why I called it that) which basically lets you tell the data what
it's going to look like. In other words, it does a bunch of
conversions for you. These conversions include changing type, range
and normalization of the voxel values, expanding or contracting images
(by voxel duplication or averaging) to give a specified image size,
and converting vector images to scalar.

Just so you don't get confused let me tell you clearly here:
mincreshape does all of the ICV conversions first and then the
hyperslab and dimension re-ordering stuff is applied to the result of
that. So if you want to mix them together (like -imgsize,
-start, -count), get it clear in your head first.

Okay, hold on to your seat: here's a list of options.

OPTIONS

Note that options can be specified in abbreviated form (as long as
they are unique) and can be given anywhere on the command line.

General options

-2

Create MINC 2.0 format output files.

-clobber

Overwrite an existing file.

-noclobber

Don't overwrite an existing file (default).

-verbose

Print out progress information for each chunk of data copied
(default). A chunk varies in size depending mostly on whether you're
re-ordering dimensions or not and how big the internal buffer is
allowed to be.

Image conversion options (pixel type and range):

The default for type, sign and valid range is to use those of the input
file. If type is specified, then both sign and valid range are set to
the default for that type. If sign is specified, then valid range is
set to the default for the type and sign.

-filetype

Don't do any type conversion (default).

-byte

Store output voxels in 8-bit integer format.

-short

Store output voxels in 16-bit integer format.

-int

Store output voxels in 32-bit integer format.

-long

Superseded by -int.

-float

Store output voxels in 32-bit floating point format.

-double

Store output voxels in 64-bit floating point format.

-signed

Write out values as signed integers (default for short and long). Ignored for
floating point types.

-unsigned

Write out values as unsigned integers (default for byte). Ignored for
floating point types.

-valid_rangemin max

specifies the valid range of output voxel values in their integer
representation. Default is the full range for the type and sign. This
option is ignored for floating point values.

-image_rangemin max

Normalize images to a given minimum and maximum real value (not voxel
value).

-normalize

Normalize images to real minimum and maximum for the entire input
file.

-nonormalize

Do not normalize images (default).

-nopixfill

Do not convert out-of-range values in input file, just copy them
through.

Specify a new pixel value to replace out-of-range values in the input
file.

Image conversion options (dimension direction and size):

-scalar

Convert vector images to scalar images (a vector image is one with
vector_dimension as the fastest varying dimension). The vector
dimension is removed and values are averaged.

-noscalar

Do not convert vector images to scalar images (default).

+direction

Flip images to give positive step value for spatial axes.
Note that the flipping of spatial axes only applies to "image
dimensions". These are the two fastest varying (non-vector) dimensions
in the file. If you want to flip a non-image dimension, you can
convert it to an image dimension with
-dimsizedimname=-1 (the -1
means don't really change the size). Check out the examples.

Preserve aspect ratio when resizing images. This means that voxels are
replicated (or averaged) the same number of times along each image
dimension.

-nokeepaspect

Do not force preservation of aspect ratio when resizing images (default).

-imgsizesize

Specify the desired image size (used if -rowsize or -colsize not
given).

-rowsizesize

Specify the desired number of rows in the image.

-colsizesize

Specify the desired number of columns in the image.

-dimsizedimension=size

Specify the size of a named dimension (dimension=size). Note that
the resizing only applies to "image dimensions" - usually the two
fastest-varying (non-vector) dimensions. To do dimension resizing, all
fastest-varying dimensions up to the named dimension are turned into
image dimensions, and these are then affected by the direction
options. The dimension name and size must be in one command-line
argument, so if you use spaces (which is okay), remember to use quotes
to hide them from the shell.

Reshaping options:

-transverse

Write out transverse slices.

-sagittal

Write out sagittal slices.

-coronal

Write out coronal slices.

-dimorderdim1,dim2,dim3,...

Specify dimension order, where dim? are the names of the dimensions.
You can give fewer dimensions than exist in the file: they are assumed
to be the fastest varying dimensions in the output file (so
-transverse is exactly equivalent to -dimorder zspace,yspace,xspace).
Again, spaces are allowed between names, but remember to hide them
from the shell with quotes.

-dimrangedim=start[,count]

Specify the range of dimension subscripts for dimension dim. If
count is missing or 0, then it is taken to mean 1, but remove the
dimension from the output file (a count of 1 will keep a dimension of
size 1). A negative count means flip the data along that dimension -
in this case start specifies the highest voxel coordinate for the
dimension (-dimrange xspace=3,-3 gives a flipped version of
-dimrange xspace=1,3). The options -start and -count
provide an alternative way to specify the same information.

-startcoord0,coord1,coord2,...

Specifies the starting corner of the hyperslab (coordinates go from
slowest varying dimension to fastest). If fewer coordinates are given
than dimensions exist in the file, then they are assumed to apply to
the slowest varying dimensions and the remaining coordinates are set
to 0. See -dimrange for more details. Both -start and
-count give vectors that correspond to input file dimensions
after the image conversion (ICV) options have been applied.

-countsize0,size1,size2,...

Specifies edge lengths of hyperslab to read (coordinates go from
slowest varying dimension to fastest). If fewer sizes are given than
dimensions exist in the file, then they are assumed to apply to the
slowest varying dimensions and the remaining sizes are set to the full
size of the dimension. See -dimrange for more details. Both
-start and -count give vectors that correspond to input file
dimensions after the image conversion (ICV) options have been applied.

Missing data options:

-nofill

Use value zero for points outside of the input volume (default).

-fill

Use a fill value for points outside of input volume (minimum possible
value).

-fillvaluevalue

Specify a fill value for points outside of the input volume (this is a
real value, not a pixel value).

Generic options for all commands:

-help

Print summary of command-line options and exit.

-version

Print the program's version number and exit.

EXAMPLES:

Assume that we have a volume with dimensions zspace, yspace, xspace
(that's transverse) and sizes 128, 256, 256. If we want to get slice 40
out of it (keeping the coordinate information for the zspace
dimension), then we can use