pnmnorm - normalize the contrast in a Netbpm image


   pnmnorm [-bpercent N | -bvalue N] [-wpercent N | -wvalue N] [-keephues]


   All options can be abbreviated to their shortest  unique  prefix.   You
   may use two hyphens instead of one to designate an option.  You may use
   either white space or an equals sign between an  option  name  and  its


   Reads  a  PNM  image  (PBM,  PGM,  or PPM).  Normalizes the contrast by
   forcing the lightest pixels to white, the darkest pixels to black,  and
   linearly  rescaling  the ones in between; and produces the same kind of
   file as output.  This is pretty useless for a PBM image.

   The program first  determines  a  mapping  of  old  brightness  to  new
   brightness.   For  each  possible  brightness  of  a pixel, the program
   determines a corresponding brightness for the output image.

   Then for each pixel in the image, the program computes  a  color  which
   has  the desired output brightness and puts that in the output.  With a
   color image, it is not always possible to  compute  such  a  color  and
   retain  any semblance of the original hue, so the brightest and dimmest
   pixels may only approximate the desired brightness.

   Note  that  for  a  PPM  image,  this  is  different  from   separately
   normalizing the individual color components.


   By  default,  the  darkest 2 percent of all pixels are mapped to black,
   and the lightest 1 percent are mapped to white.  You can override these
   percentages  by  using  the  -bpercent  and -wpercent flags, or you can
   specify the exact pixel values to be mapped by using  the  -bvalue  and
   -wvalue  flags.   Appropriate  numbers for the flags can be gotten from
   the ppmhist tool.  If you just  want  to  enhance  the  contrast,  then
   choose  values  at elbows in the histogram; e.g. if value 29 represents
   3% of the image but value 30 represents 20%, choose 30 for bvalue.   If
   you  want  to  lighten  the image, then set bvalue to 0 and just fiddle
   with wvalue; similarly, to darken the image, set wvalue to  maxval  and
   play with bvalue.

   The  -keephues  option says to keep each pixel the same hue as it is in
   the input; just adjust its intensity.  By default,  pnmnorm  normalizes
   contrast  in  each  component independently (except that the meaning of
   the  -wpercent  and  -bpercent  options  are  based  on   the   overall
   intensities of the colors, not each component taken separately).  So if
   you have a color which is intensely red but dimly green, pnmnorm  would
   make  the  red  more  intense and the green less intense, so you end up
   with a different hue than you started with.

   If you specify -keephues, pnmnorm would likely leave this pixel  alone,
   since its overall intensity is medium.

   -keephues  can  cause  clipping, because a certain color may be below a
   target intensity while one  of  its  components  is  saturated.   Where
   that's  the  case, pnmnorm uses the maximum representable intensity for
   the saturated component  and  the  pixel  ends  up  with  less  overall
   intensity, and a different hue, than it is supposed to have.

   This option is meaningless on grayscale images.

   Before March 2002, there was no -keephues option.

   The -brightmax option says to use the intensity of the most intense RGB
   component of a pixel as the pixel's brightness.   By  default,  pnmnorm
   uses the luminosity of the color as its brightness.

   This option is meaningless on grayscale images.

   Before March 2002, there was no -brightmax option.


   ppmhist(1), pgmhist(1), pnmgamma(1), ppmbrighten(1), ppmdim(1), pnm(5)

                            7 October 1993                      pnmnorm(1)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.