242 lines
7.3 KiB
HTML
242 lines
7.3 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of pnmgamma</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>pnmgamma</H1>
|
|
Section: User Commands (1)<BR>Updated: 11 June 2001<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<A NAME="ixAAB"></A>
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
pnmgamma - perform gamma correction on a portable anymap
|
|
<P>
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>pnmgamma </B>
|
|
|
|
[<B>-ungamma</B>]
|
|
|
|
[<B>-cieramp</B>|<B>-srgbramp</B>]
|
|
|
|
[<I>value</I>
|
|
|
|
[<I>pnmfile</I>]]
|
|
|
|
<BR>
|
|
|
|
<B>pnmgamma</B>
|
|
|
|
[<B>-ungamma</B>]
|
|
|
|
[<B>-cieramp</B>|<B>-srgbramp</B>]
|
|
|
|
<I>redgamma greengamma bluegamma</I>
|
|
|
|
[<I>pnmfile</I>]
|
|
|
|
<P>
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
Performs gamma correction on pseudo-PNM images.
|
|
<A NAME="ixAAC"></A>
|
|
<P>
|
|
The PPM format specification specify that certain sample values in
|
|
a file represent certain light intensities in an image. In particular, they
|
|
specify that the sample values are directly proportional to gamma-corrected
|
|
intensity values. The gamma correction they specify is CIE Rec. 709.
|
|
<P>
|
|
However, people sometimes work with approximations of PPM and PGM
|
|
where the relationship between the image intensities and the sample
|
|
values are something else. For example, the sample value might be
|
|
directly proportional to the intensity with no gamma correction (often
|
|
called "linear intensity"). Or a different gamma transfer function
|
|
may be used.
|
|
<P>
|
|
<B>pnmgamma</B>
|
|
|
|
allows you to manipulate the transfer function, thus working with
|
|
and/or creating pseudo-PPM files that are useful for various things.
|
|
<P>
|
|
For example, if you feed a true PPM to
|
|
<B>pnmgamma -cieramp -ungamma</B>,
|
|
|
|
you get as output a file which is PPM in every respect except that the
|
|
sample values are directly proportional to the light intensities in the
|
|
image. If you feed such a file to
|
|
<B>pnmgamma -cieramp</B>,
|
|
|
|
you get out a true PPM.
|
|
<P>
|
|
The situation for PGM images is analogous. And
|
|
<B>pnmgamma</B>
|
|
|
|
treats PBM images as PGM images.
|
|
<P>
|
|
When you feed a linear PPM image to a display program that expects a
|
|
true PPM, the display appears darker than it should, so
|
|
<B>pnmgamma</B>
|
|
|
|
has the effect of lightening the image. When you feed a true PPM to
|
|
a display program that expects linear sample values, and therefore
|
|
does a gamma correction of its own on them, the display appears lighter
|
|
than it should, so
|
|
<B>pnmgamma</B>
|
|
|
|
with a gamma value less than one (the multiplicative inverse of
|
|
whatever gamma value the display program uses) has the effect of
|
|
darkening the image.
|
|
<P>
|
|
<A NAME="lbAE"> </A>
|
|
<H2>PARAMETERS</H2>
|
|
|
|
<P>
|
|
The only parameters are the specification of the input image file and
|
|
the gamma values. Every gamma transfer function
|
|
<B>pnmgamma</B>
|
|
|
|
uses contains an exponent, which is the gamma value, and you can choose
|
|
that value.
|
|
<P>
|
|
Furthermore, you can choose different values for each of the three RGB
|
|
components. If you specify only one gamma value,
|
|
<B>pnmgamma</B>
|
|
|
|
uses that value for all three RGB components.
|
|
<P>
|
|
If you don't specify any gamma parameters,
|
|
<B>pnmgamma</B>
|
|
|
|
chooses a default. For the transfer functions defined by standards,
|
|
the default is the value defined by the standard. If you specify
|
|
anything else, you will be varying from the standard. For the simple
|
|
power function transfer function, the default gamma is 1/.45.
|
|
<P>
|
|
<A NAME="lbAF"> </A>
|
|
<H2>OPTIONS</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="1"><B>-ungamma</B>
|
|
|
|
<DD>
|
|
Apply the inverse of the specified transfer function (i.e. go from
|
|
gamma-corrected nonlinear intensities to linear intensities).
|
|
<P>
|
|
<DT id="2"><B>-cieramp</B>
|
|
|
|
<DD>
|
|
Use the CIE Rec. 709 gamma transfer function. Note that it is true
|
|
CIE Rec. 709 only if you use the default gamma value (i.e. don't
|
|
specify any gamma parameters). This transfer function is a power
|
|
function modified with a linear ramp near black.
|
|
<P>
|
|
If you specify neither
|
|
<B>-cieramp</B>
|
|
|
|
nor
|
|
<B>-srgbramp</B>,
|
|
|
|
the transfer function defaults to a simple power function.
|
|
<DT id="3"><B>-srgbramp </B>
|
|
|
|
<DD>
|
|
Use the Internation Electrotechnical Commission (IEC) SRGB gamma
|
|
transfer function (as specified in the standard IEC 61966-2-1). Note
|
|
that it is true SRGB only if you use the default gamma value
|
|
(i.e. don't specify any gamma parameters). This transfer function is
|
|
like the one selected by
|
|
<B>-cieramp</B>,
|
|
|
|
but with different constants in it.
|
|
<P>
|
|
Note that SRGB is often spelled "sRGB". In this document, we use
|
|
standard English typography, though, which doesn't allow for that kind of
|
|
capitalization.
|
|
<P>
|
|
If you specify neither
|
|
<B>-cieramp</B>
|
|
|
|
nor
|
|
<B>-srgbramp</B>,
|
|
|
|
the transfer function defaults to a simple power function.
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAG"> </A>
|
|
<H2>WHAT IS GAMMA?</H2>
|
|
|
|
<P>
|
|
A good explanation of gamma is in Charles Poynton's
|
|
GammaFAQ at <<A HREF="http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html">http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html</A>>
|
|
and ColorFAQ at <<A HREF="http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html">http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html</A>>
|
|
<P>
|
|
In brief: The simplest way to code an image is by using sample values
|
|
that are directly proportional to the intensity of the color
|
|
components. But that wastes the sample space because the human eye
|
|
can't discern differences between low-intensity colors as well as it
|
|
can between high-intensity colors. So instead, we pass the light
|
|
intensity values through a transfer function that makes it so that
|
|
changing a sample value by 1 causes the same level of perceived color
|
|
change anywhere in the sample range. We store those resulting values
|
|
in the image file. That transfer function is called the gamma
|
|
transfer function and the transformation is called gamma correcting.
|
|
<P>
|
|
Virtually all image formats, either specified or de facto, use
|
|
gamma-corrected values for their sample values.
|
|
<P>
|
|
What's really nice about gamma is that by coincidence, the inverse
|
|
function that you have to do to convert the gamma-corrected values back
|
|
to real light intensities is done automatically by CRTs. You just apply
|
|
a voltage to the CRT's electron gun that is proportional to the
|
|
gamma-corrected sample value, and the intensity of light that comes out of
|
|
the screen is close to the intensity value you had before you applied
|
|
the gamma transfer function!
|
|
<P>
|
|
And when you consider that computer video devices usually want you to
|
|
store in video memory a value proportional to the signal voltage you
|
|
want to go to the monitor, which the monitor turns into a proportional
|
|
drive voltage on the electron gun, it is really convenient to work with
|
|
gamma-corrected sample values.
|
|
<P>
|
|
<P>
|
|
<A NAME="lbAH"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?5+pnm">pnm</A></B>(5)
|
|
|
|
<P>
|
|
<A NAME="lbAI"> </A>
|
|
<H2>AUTHOR</H2>
|
|
|
|
Copyright (C) 1991 by Bill Davidson and Jef Poskanzer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="4"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="5"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="6"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="7"><A HREF="#lbAE">PARAMETERS</A><DD>
|
|
<DT id="8"><A HREF="#lbAF">OPTIONS</A><DD>
|
|
<DT id="9"><A HREF="#lbAG">WHAT IS GAMMA?</A><DD>
|
|
<DT id="10"><A HREF="#lbAH">SEE ALSO</A><DD>
|
|
<DT id="11"><A HREF="#lbAI">AUTHOR</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:24 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|