
vcltrans(1)                  Khoros                   vcltrans(1)

PROGRAM
     vcltrans - Tristimulus to tristimulus color space conver-
     sions

SYNTAX
     vcltrans

     -i             input image

     -o             output resulting image

     [-n]           specifies normalization factor

     [-t]           lets user chose color space model:
                    1 (ntscRGB),
                    2 (genericRGB),
                    3 (ntscYIQ),
                    4 (ntscCMY),
                    5 (cieXYZ),
                    or 6 (cieUVW)
                       [default = 1]

     [-V]           Gives the version for vcltrans

     [-U]           Gives the usage for vcltrans

     [-P]           Prompts for command line options

     [-A [file1]]   Creates the answer file called vcltrans.ans
                    or file1

     [-a [file1]]   Uses vcltrans.ans or file1 as the answer file

DESCRIPTION
     vcltrans performs the linear transformations between YIQ,
     XYZ, CMY, UVW and RGB colorspaces.  These transformations
     were taken from Pratt (Digital Image Processing, 1978).  The
     values in the transformation matrices are based on NTSC RGB
     standard phosphers, as Pratt describes.

     The following transformation matrices are used:

     RGBtoYIQ = { { 0.299,  0.587,  0.114},
                  { 0.596, -0.274, -0.322},
                  { 0.211, -0.523,  0.312} };

     RGBtoXYZ = { { 0.607,  0.174,  0.201},
                  { 0.299,  0.587,  0.114},
                  { 0.000,  0.066,  1.117} };

     RGBtoUVW = { { 0.405,  0.116,  0.133},
                  { 0.299,  0.587,  0.114},
                  { 0.145,  0.827,  0.627} };

     YIQtoRGB = { { 1.000,  0.956,  0.621},
                  { 1.000, -0.272, -0.647},
                  { 1.000, -1.106,  1.703} };

     YIQtoXYZ = { { 0.967,  0.318,  0.594},
                  { 1.000,  0.000,  0.000},
                  { 1.173, -1.238,  1.870} };

     YIQtoUVW = { { 0.653,  0.208,  0.403},
                  { 1.000,  0.000,  0.000},
                  { 1.599, -0.780,  0.623} };

     XYZtoRGB = { { 1.910, -0.533, -0.288},
                  {-0.985,  2.000, -0.028},
                  { 0.058, -0.118,  0.896} };

     XYZtoYIQ = { { 0.000,  1.000,  0.000},
                  { 1.407, -0.842, -0.451},
                  { 0.932,  1.189,  0.233} };

     XYZtoUVW = { { 0.667,  0.000,  0.000},
                  { 0.000,  1.000,  0.000},
                  {-0.500,  1.500,  0.500} };

     UVWtoRGB = { { 2.432,  0.332, -0.576},
                  {-1.519,  2.083, -0.057},
                  { 1.440, -2.823,  1.803} };

     UVWtoYIQ = { { 0.000,  1.000,  0.000},
                  { 1.403,  0.534, -0.907},
                  { 1.757, -1.898,  0.470} };

     UVWtoXYZ = { { 1.500,  0.000,  0.000},
                  { 0.000,  1.000,  0.000},
                  { 1.500, -3.000,  2.000} };

     The input image must be of type FLOAT, and of colormap model
     space model ntscYIQ, cieXYZ, ntscCMY, cieUVW, ntscRGB or
     genericRGB. If the image is not in float format, it will be
     converted automatically, if the conversion is an upward
     conversion.  The input image will be normalized by the value
     specified by the -n option. The default is 255.

     When converting between the different color spaces, care
     must be taken in regards to the normalization factor. If the
     image had been scaled by using vscale, then the scale factor
     used in vscale should be the normalization factor used in
     this routine.  The resulting image should not be normalized
     by using vnormal, if the inverse transformation is desired.
     The data will be corrupted.  NOTE: The output values of some
     of the transformations will be negative, and some values
     will be greater than 1. If conversion to BYTE is desired,
     then a possible solution is:

     1.   use vbandspt3 to obtain 3 grey level images

     2.   use voffset to offset the image by the maximum negative
          value.  The offset value will most likely be different
          for each of the three images.

     3.   use vstats to get the maximum pixel value in the image
          and divide that by the maximum desired pixel value.
          This gives the scale factor. (EX. 3.2/255 = scale fac-
          tor).

     4.   now use vconvert to scale (NOT NORMALIZE) by the com-
          puted scale factor and convert to BYTE.

     5.   vbandcomb can be used to create a multi-spectral image.

     The reverse of the steps above may be followed to obtain the
     original image (scale by the inverse of the scale factor).

     We really do not know what it means to manipulate this data
     as explained above, except to make it displayable?

     If converting from YIQ, UWV, or XYZ to CMY the routine first
     converts to RGB then converts to CMY because CMY = 1 - RGB.

REQUIRED ARGUMENTS
     -i     type: infile
            desc: input image

     -o     type: outfile
            desc: output resulting image

OPTIONAL ARGUMENTS
     -n     type: float
            desc: specifies normalization factor
            default: 255
            bounds: value > 0.0

     -t     type: integer
            desc: lets user chose color space model
            allowed values:
            1 (ntscRGB),
            2 (genericRGB),
            3 (ntscYIQ),
            4 (ntscCMY),
            5 (cieXYZ),
            or 6 (cieUVW)

EXAMPLES
     vcltrans -i ball.YIQ.xv -o ball.RGB.xv -t 2 -n 255.0

     This will convert the input image, which has a color space
     model of YIQ, to a color space model of genericRGB.  The
     normalization factor used is 255.

     vcltrans -i ball.RGB.xv -o ball.UVW.xv -t 6

     This will convert the input image, which has a color space
     model of RGB, to an image with a color space model of
     cieUVW.  The default normalization factor of 255 is used.

SEE ALSO
     intro(1), verror(3), vgparms(3), vutils(3), lvcltrans(3)

RESTRICTIONS
     The input image must be of one of the color space models
     listed above.  The data type of the input must be
     VFF_TYP_FLOAT.

COPYRIGHT
     Copyright 1991, University of New Mexico.  All rights
     reserved.

Khoros                    Release: 1.0                          1

