Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

RedHat 9 (Linux i386) - man page for pnmgamma (redhat section 1)

pnmgamma(1)									      pnmgamma(1)

       pnmgamma - perform gamma correction on a PNM image

       pnmgamma [-ungamma] [-cieramp] [value [pnmfile]]
       pnmgamma [-ungamma] [-cieramp] redgamma greengamma bluegamma [pnmfile]

       Reads a psuedo-PNM image as input.  Performs gamma correction, and produces a PNM image as

       Alternatively, this program can undo gamma correction.

       The PPM specification states that the sample values in the image are nonlinear,	i.e.  not
       directly  proportional  to  light intensity, i.e. gamma corrected.  But there exist images
       that are PPM in every respect except that their sample values are directly proportional to
       light  intensity.   People  may loosely refer to these as PPM, but they are not.  pnmgamma
       converts these pseudo-PPM images to true PPM by performing gamma correction.  To get  true
       PPM,  you  must	specify the -cieramp option and no gamma values.  That causes pnmgamma to
       apply the CIE Rec. 709 gamma transfer function, as specified by the PPM format  specifica-

       On  the other hand, you can use the -ungamma option to convert from true PPM to linear RGB
       pseudo-PPM.  (Again, if the input is true PPM, specify the -cieramp option  and	no  gamma

       The situation for PGM images is analogous.  And pnmgamma treats PBM images as PGM images.

       You can also apply a different transfer function (which means you don't end up with a true
       PPM image) by selecting the gamma values as arguments or  omitting  the	-cieramp  option.
       The  gamma value is the power to which the input value is raised in the transfer function.
       A value of 1 means the output is the same as the input.	A value less than one  makes  the
       output samples numerically less than the input samples; A value greater than one makes the
       samples numerically greater.

       Without the -cieramp option, the transfer function  is  a  simple  power  function.   With
       -cieramp,  it  is a power function modified with a linear ramp near black, as described in
       CIE Rec. 709.

       When you feed a linear PPM image to a display program that expects a true PPM, the display
       appears	darker	than it should, so pnmgamma 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
       pnmgamma 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.

       A    good    explanation    of	 gamma	  is	in   Charles   Poynton's   GammaFAQ    at
       <http://www.inforamp.net/~poynton/ColorFAQ.html> 	and	     ColorFAQ	       at

       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.

       Virtually all image formats, either specified or de facto, use gamma-corrected values  for
       their sample values.

       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  auto-
       matically  by  CRTs.   You  just apply a voltage to the CRT's electron gun that is propor-
       tional to the gamma-corrected sample value, and the intensity of light that comes  of  the
       screen is close to the intensity value you had before you applied the gamma transfer func-

       And when you consider that computer video devices usually want you to store in video  mem-
       ory  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  conve-
       nient to work with gamma-corrected sample values.


       Copyright (C) 1991 by Bill Davidson and Jef Poskanzer.

					   11 June 2001 			      pnmgamma(1)

All times are GMT -4. The time now is 01:26 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password