Apply display function to color or gray-scale images
pfsdisplayfunction [--display-function <df-spec>] [--to-pixels | --to-luminance] [--help] [--verbose]
Use this command to convert pixel values to luminance / radiance units displayed on a monitor or to perform inverse conversion. This command is useful in combination with the HDR-VDP to convert LDR images to luminance maps representing images shown on a particular display. The display function specification is identical to the specification used in the pfstmo_mantiuk08 tone mapping operator (from the pfstmo package).
If neither --to-luminance nor --to-pixels option is specified, the appropriate conversion direction will be deducted from the LUMINANCE tag in the pfs stream.
--to-luminance, -l
Convert pixel values to absolute luminance / radiance units. For RGB images the same display function is applied in each color channel.
--to-pixels, -p
Convert absolute luminance / radiance units to pixel values. For RGB images the same display function is applied in each color channel.
--display-function <df-spec>, -d <df-spec>
The display function describes how output luminance of a display changes with pixel values. If no parameter is given, the command assumes -df pd=lcd (see Pre-defined display below). There are several ways to specify the display function:
Gamma-gain-black-ambient display model
g=<float>:l=<float>:b=<float>:k=<float>:a=<float>[:n=<float>]
Gamma-gain-black-ambient model can approximate a range of displays and is a compact way to specify a display function. It assumes that a display function has the following form:
L_d(I) = (l-b)*I^gamma + b + k/pi*a
The parameters are as follows:
g -
gamma or exponent of a display function (default 2.2, usually from 1.8 to 2.8)
l -
peak luminance of a display in cd/m^2 (default 100, from 80 for CRTs to 500 or more for newer displays)
b -
black level, which is luminance of a black pixel when the display is on (default 1, usually from 0.3 to 1 cd/m^2)
k -
reflectivity of a screen (assuming that it is diffuse) (default 0.01, usually about 0.01 (1%) for LCD displays, more for CRTs)
a -
ambient illumination in lux. Typical values are:
Family living room (dim, default)
A brightly lit office
Sunlight on an average day (min.)
Sunlight on an average day (max.)
Pre-defined display
pd=<display_type>
Use pre-defined display type. This options are for convenience only and they do not mean to accurately model the response of a particular display. The following display types are recognized:
lcd_office (g=2.2, l=100, b=0.8, k=0.01, a=400 )
lcd set to "office" mode seen in bright environment
lcd (g=2.2, l=200, b=0.8, k=0.01, a=60 )
typical lcd seen in dim environment (default)
lcd_bright (g=2.6, l=500, b=0.5, k=0.01, a=10 )
newer LCD TV seen in dark environment
crt (g=2.2, l=80, b=1, k=0.02, a=60 )
CRT monitor seen in dim environment
The parameters in the parenthesis are the same as for the gamma-gain-black-ambient model explained above.
Lookup-table
lut=<file>
This is the most accurate specification of the display response function, but requires measuring it with a luminance meter. The lookup table should account also for ambient light, so that it is recommended to use the luminance meter that can measure screen luminance from a distance, such as Minolta LS-100 (as opposed to those that use rubber tube touching a display that eliminates the influence of ambient light). The <file> must be a comma-separated text file in a format (CSV) with two columns: first column represents pixel values (from 0.0 to 1.0) and the second physical luminance in cd/m^2. Both the pixel value and the luminance should increase in each raw.
pfsin barbara.jpg | pfsdisplayfunction -l -d pd:crt -v | pfsout barbara_crt.hdr
Convert barbara.jpg image from pixel values to a luminance map of the image shown on a CRT monitor and store the map as an HDR image.
Please report bugs and comments to the pfstools discussion group (http://groups.google.com/group/pfstools).