Man Linux: Main Page and Category List

NAME

       vop - perform arithmetic or logical pixel operation

SYNOPSIS

       vop -op op [-option ...] [infile] [outfile]

DESCRIPTION

       vop performs arithmetic and logical operations on image pixels.  It has
       three modes:

         1. It can perform a unary (single-operand) operation on each pixel of
            an input image.

         2. It can perform a binary (two-operand) operation between each pixel
            of an input image and a scalar value.

         3. It can perform a binary (two-operand) operation between each pixel
            of an input image and the corresponding pixel of a second image.
       The  mode,  operation,  and  operands  are  specified  by  command line
       options.  Input images come from a data file; the  specified  operation
       is performed on each to produce an output image of the same properties.

       When the operation is a binary one between two images (case 3,  above),
       the second input comes from a separate file, and it may have...

         ...the  same  number of bands as the first input image, in which case
         band i of the output image is formed from band i of both input image;
         or

         ...a  single band, in which case band i of the output image is formed
         from band i of the first input image and band 0 of the second.

       By means of the -min and -max  options,  you  can  specify  bounds  for
       clipping output pixel values.

COMMAND LINE OPTIONS

       vop accepts the following options:

       -help          Prints a message describing options.

       -in infile     Specifies a Vista data file containing the input images.
                      These images serve as the  first  operand  of  a  binary
                      operation, or the only operand of a unary one.

       -out outfile   Specifies  where  to  write the output images as a Vista
                      data file.

       -op op         Specifies  the  operation  as  one  of  the   following,
                      described here in terms of operands u and v:

                        abs     absolute value of u
                        exp     exponential function e ** u
                        log     natural logarithm log (u)
                        not     negation ! u
                        sqrt    square root of u
                        square  u * u
                        add     u + v
                        and     u & v
                        dist    absolute value of ( u - v )
                        div     u / v
                        max     max (u, v)
                        min     min (u, v)
                        mult    u * v
                        or      u | v
                        sub     u - v
                        xor     u ^ v

       -value number  Specifies  a  scalar  constant  to be used as the second
                      operand of a binary operation.

       -image imagefile
                      Specifies a Vista data file containing a single image to
                      serve as the second operand of a binary operation.

       -min number    Sets  a  lower  bound  for clipping output pixel values.
                      Default: the minimum value that can be represented by an
                      output pixel.

       -max number    Sets  an  upper  bound for clipping output pixel values.
                      Default: the maximum value that can be represented by an
                      output pixel.

       When  -op specifies a binary operation, either -image or -value must be
       specified.

       Input and output files can be specified on the command line or  allowed
       to default to the standard input and output streams.

SEE ALSO

       vadjust(1Vi), vconvert(1Vi), vinvert(1Vi), vnegate(1Vi),
       VImage(3Vi), Vista(7Vi)

NOTES

       The  and,  or,  and  xor  operations  can only be performed with images
       having integer pixel representations (not float or double).

       A floating point result (such as what exp produces) is rounded  to  the
       nearest integer for storing in an integer output pixel.

       Clipping  of output pixel values and arithmetic exceptions are reported
       by means of warning messages.

BUGS

       If vop is built under Solaris 2.x using the unbundled Sun  C  compiler,
       an  integer  division by zero is flagged as a fatal error. This is done
       because  of  a  SunOS  bug  that  causes  those  exceptions  to  repeat
       indefinitely (see BUGS on the SunOS 5.2 ieee_handler(3M) man page).

       If  vop  is  built  under  Solaris  2.x using a compiler other than the
       unbundled  Sun  C  compiler,  there  is  no  reporting  of   arithmetic
       exceptions.

AUTHORS

       Ralph Horstmann <horstman@cs.ubc.ca>, Art Pope <pope@cs.ubc.ca>