dwww Home | Manual pages | Find package

Pamgauss User Manual(1)     General Commands Manual     Pamgauss User Manual(1)

NAME
       pamgauss - create a two-dimensional Gaussian function as a PAM image

SYNOPSIS
       pamgauss width height -sigma=number [-maxval=number] [-tupletype=string]
       [-maximize] [-oversample=number]

       Minimum unique abbreviation of option is acceptable.  You may use double
       hyphens  instead  of single hyphen to denote options.  You may use white
       space in place of the equals sign to separate an option  name  from  its
       value.

EXAMPLES
            pamgauss 7 7 -sigma=.5 -maximize -tupletype=GRAYSCALE | pamtopnm >gauss.pgm
            pnmconvol -nooffset -normalize gauss.pgm myimage.ppm >blurred.ppm

DESCRIPTION
       This program is part of Netpbm(1).

       pamgauss  generates  a  one-plane PAM image whose samples are a Gaussian
       function of their distance from the center of the image.  I.e.  the sam-
       ple value is highest in the center and goes down, in a bell curve shape,
       as you move away from the center.

       You can use this image as a convolution kernel with pnmconvol to blur an
       image.  (This technique is known as Gaussian blurring).

       width and height are the dimensions of the image  that  pamgauss  gener-
       ates.   Mathematically  speaking,  they are the domain of the two-dimen-
       sional Gaussian function.  If you want to be sure you get a whole Gauss-
       ian function, make sure that you choose a standard deviation  and  image
       dimensions  so  that if you made it any larger, the sample values at the
       edges would be zero.

       The output image is PAM.  To make it usable with pnmconvol, specify -tu-
       pletype=GRAYSCALE so pnmconvol can use it as if it were PGM.   You  must
       use the -nooffset option on pnmconvol because zero means zero in the PAM
       that pamgauss generates.

       Without  -maximize,  the  sum of all the samples is equal to the image's
       maxval (within rounding error).  This is  true  even  if  you  clip  the
       Gaussian  function  by making the image too small.  This is what is nor-
       mally required of a convolution kernel.

       pamgauss oversamples and averages to represent the  continuous  Gaussian
       function  in  discrete  samples in the PAM output.  Consider an image 11
       samples wide and an oversampling factor  of  10.   The  samples  can  be
       thought of as contiguous squares one unit wide.  The center of the image
       is thus the center of the 6th sample from the left.  The 3rd sample from
       the  left  covers a range of distances from 3 to 4 units from the center
       of the image.  Because the oversampling factor is 10, pamgauss  computes
       the  value of the Gaussian function at 10 points evenly spaced between 3
       and 4 units from the center of the image and assigns the 3rd sample from
       the left the mean of those 10 values.

OPTIONS
       In addition to the options common to all  programs  based  on  libnetpbm
       (most  notably  -quiet,  see  ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamgauss recognizes the
       following command line options:

       -sigma=number
              This is the standard deviation of  the  Gaussian  function.   The
              higher  the  number,  the  more spread out the function is.  Nor-
              mally, you want to make this number low enough that the  function
              reaches zero value before the edge of your image.

              number is in units of samples.

              This option is required.  There is no default.

       -maximize
              Causes  pamgauss  to use the whole dynamic range available in the
              output PAM image by choosing an amplitude for the Gaussian  func-
              tion  that causes the maximum value in the image to be the maxval
              of the image.

              If you select this, you probably want  to  normalize  the  output
              (scale  the  samples  down so the volume under the surface of the
              two-dimensional Gaussian function is the maxval) before  you  use
              it,  for  example with pnmconvol's -normalize option.  The reason
              this is different from just not using -maximize is that this sub-
              sequent normalization can be done with much more  precision  than
              can be represented in a PAM image.

              Without  this  option,  pamgauss uses an amplitude that makes the
              volume under the surface of the two-dimensional Gaussian function
              the maxval of the image.  This means all the samples in the image
              are normally considerably less than the maxval.

              This option was new in Netpbm 10.79 (June 2017).

       -maxval=number
              This is the maxval for the output image.  65535 is almost  always
              the  best value to use.  But there may be some programs (not part
              of Netpbm) that can't handle a maxval greater than 255.

              The default is 255.

       -tupletype=string
              This is the value of the "tuple_type" attribute  of  the  created
              PAM image.  It can be any string up to 255 characters.

              If you don't specify this, pamgauss generates a PAM with unspeci-
              fied tuple type.

       -oversample=number
              This sets the oversampling factor.  pamgauss samples the Gaussian
              function  this  many  times, both horizontally and vertically, to
              get the value of each sample in the output.

              An oversampling factor of 1 means no  oversampling,  which  means
              each  sample  is based only on the value of the Gaussian function
              at the center of the sample.

              The default is 5 divided by the standard deviation, rounded up to
              a whole number.

              This option was new in Netpbm 10.79 (June 2017).  Before that, it
              is essentially 1 - there is no oversampling.

SEE ALSO
       pnmconvol(1), pamtopnm(1), pgmkernel(1), pamseq(1), pam(1)

HISTORY
       pamgauss was new in Netpbm 10.23 (July 2004).

DOCUMENT SOURCE
       This manual page was generated by the Netpbm tool  'makeman'  from  HTML
       source.  The master documentation is at

              http://netpbm.sourceforge.net/doc/pamgauss.html

netpbm documentation              18 May 2017           Pamgauss User Manual(1)

Generated by dwww version 1.16 on Tue Dec 16 04:56:57 CET 2025.