ra_xyze - convert between RADIANCE RGBE and XYZE formats
ra_xyze [ -r ][ -e exposure ][ -o ][ -c | -u ][ -p xr yr xg yg xb yb xw yw ] [ input [ output ] ]
Ra_xyze converts between RADIANCE RGBE (red,green,blue,exponent) and XYZE (CIE X,Y,Z,exponent) formats. The -e option specifies an exposure compensation, which may be given as a decimal multiplier or in f-stops (powers of two). The -o option may be used to specify original units, to which the exposure compensation is applied. Otherwise, the multiplier is in addition to any previous exposure adjustment. By default, ra_xyze produces a flat XYZE RADIANCE picture file from any type of RADIANCE input picture. To override these defaults, the -c option may be used to specify run-length encoded output, or the -u option may be used to specify a flat output.
The -r option causes ra_xyze to produce a run-length encoded RGBE file instead, unless -u is given, also, when it will produce a flat RGBE file. The -p option may be used to override the standard RADIANCE RGB primary colors to tailor the image for a particular output device or representation. The eight floating-point arguments to this option are the 1931 CIE (x,y) chromaticity coordinates of the three RGB primaries plus the white point, in that order. The new primaries will be recorded in the header of the output file, so that the original information may be fully recovered later. It is not necessary that the input file be in XYZE format. Th -r option may therefore be used to convert from one RGB primary representation to another using the -p option.
If the output file is missing, the standard output is used. If the input file is missing as well, the standard input is used.
The CIE standard used is the 1931 2-degree observer, and the correct output representation relies on the original RADIANCE input description being defined properly in terms of the standard RADIANCE RGB primaries, whose CIE (x,y) chromaticity values are defined in the header file in src/common/color.h. In this same file is a standard for the luminous efficacy of white light (WHTEFFICACY), which is used as a conversion between lumens and watts throughout RADIANCE. This same factor is applied by ra_xyze when converting between the radiometric units of the RGBE format and the photometric units of the XYZE format. The purpose of this factor is to ensure that the Y component of the CIE representation is luminance in units of candelas/meter^2.
Most of the RADIANCE picture filters should work uniformly on either RGBE or XYZE files, so it is not necessary to convert back to RGBE format except for conversion or display, in which case the correct primaries for the chosen output device should be specified with the -p option if they are known.
To convert RGBE output from rpict(1) into run-length encoded XYZE format:
rpict [options] scene.oct | ra_xyze -c > scene_xyz.hdr |
To prepare a RADIANCE picture for display on a calibrated NTSC monitor:
ra_xyze -r -p .670 .330 .210 .710 .140 .080 .333 .333 stand.hdr ntsc.hdr |
Greg Ward
Any color correction applied to the original image is not removed or translated by ra_xyze, and it may result in color shifts in the output. If color preservation is important and the correction is unwanted, it is best to remove it with pfilt(1) using the -er, -eg and -eb options first. (Simply look at the header and apply the reciprocal primaries of all COLORCORR= lines multiplied together.) Better still, get the picture before color correction is applied.
pfilt(1), pvalue(1), ra_rgbe(1), rpict(1)