Provided by: minc-tools_2.2.00-3_amd64 bug

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.

       -quiet Do not print out progress information.

       -max_chunk_size_in_kb size
              Specify  the  maximum  size  of the copy buffer (in kbytes). Default is 4096 kbytes
              (4meg).

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_range min 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_range min 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.

       -pixfill
              Replace out-of-range values in input file by the smallest possible value (default).

       -pixfillvalue value
              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 -dimsize dimname=-1 (the
              -1 means don't really change the size). Check out the examples.

       -direction
              Flip images to give negative step value for spatial axes.

       -anydirection
              Don't flip images along spatial axes (default).

       +xdirection
              Flip images to give positive xspace:step value (left-to-right).

       -xdirection
              Flip images to give negative xspace:step value (right-to-left).

       -xanydirection
              Don't flip images along x-axis.

       +ydirection
              Flip images to give positive yspace:step value (posterior-to-anterior).

       -ydirection
              Flip images to give negative yspace:step value (anterior-to-posterior).

       -yanydirection
              Don't flip images along y-axis.

       +zdirection
              Flip images to give positive zspace:step value (inferior-to-superior).

       -zdirection
              Flip images to give negative zspace:step value (superior-to-inferior).

       -zanydirection
              Don't flip images along z-axis.

       -keepaspect
              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).

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

       -rowsize size
              Specify the desired number of rows in the image.

       -colsize size
              Specify the desired number of columns in the image.

       -dimsize dimension=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.

       -dimorder dim1,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.

       -dimrange dim=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.

       -start coord0,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.

       -count size0,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).

       -fillvalue value
              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

          mincreshape original.mnc new.mnc -dimrange zspace=40,1

       Alternatively, we could use

          mincreshape original.mnc new.mnc -start 40,0,0 -count 1,256,256

       Or simply

          mincreshape original.mnc new.mnc -start 40 -count 1

       If we wanted to get rid of the zspace dimension, we could use

          mincreshape original.mnc new.mnc -dimrange zspace=40,0

       Let's get a block out of the middle and flip it along xspace:

          mincreshape original.mnc new.mnc \
             -start 40,10,240 -count 1,200,-200

       But why restrain outselves? Let's go out of bounds:

          mincreshape original.mnc new.mnc \
             -start 40,-100,340 -count 1,200,-200

       If you want a sagittal volume, use this:

          mincreshape original.mnc new.mnc -sagittal

       How about some sideways heads - flip x and y. And convert to  byte  to  save  space  while
       we're at it:

          mincreshape original.mnc new.mnc -dimorder xspace,yspace -byte

       You like to store volumes in x,y,z order (that's z varying fastest! I know some people who
       do it!)? Okay.

          mincreshape original.mnc new.mnc -dimorder xspace,yspace,zspace

       But you're a minimalist (and don't mind taking a chance). Here's the same  thing  (but  it
       might break for another file):

          mincreshape original.mnc new.mnc -dimorder zspace

       Let's  make sure that all dimensions have a negative step attribute (see option +direction
       for some details):

          mincreshape original.mnc new.mnc -direction -dimsize zspace=-1

AUTHOR

       Peter Neelin

COPYRIGHTS

       Copyright © 1994 by Peter Neelin

SEE ALSO

       mincresample(1)

                                   $Date: 2004-05-20 21:52:09 $                    MINCRESHAPE(1)