Man Linux: Main Page and Category List


       pnmconvol - general MxN convolution on a portable anymap


       pnmconvol convolutionfile [pnmfile]


       Reads  two  portable  anymaps as input.  Convolves the second using the
       first, and writes a portable anymap as output.

       Convolution means replacing each pixel with a weighted average  of  the
       nearby  pixels.   The weights and the area to average are determined by
       the convolution matrix.  The unsigned numbers in the  convolution  file
       are offset by -maxval/2 to make signed numbers, and then normalized, so
       the actual values in the convolution file are only relative.

       Here is a sample convolution file; it does a simple average of the nine
       immediate neighbors, resulting in a smoothed image:
           3 3
           10 10 10
           10 10 10
           10 10 10

       To  see  how this works, do the above-mentioned offset: 10 - 18/2 gives
       1.  The possible range of values is from 0 to 18, and after the  offset
       that’s  -9  to  9.  The normalization step makes the range -1 to 1, and
       the values get scaled correspondingly so they become 1/9 - exactly what
       you want.  The equivalent matrix for 5x5 smoothing would have maxval 50
       and be filled with 26.

       The convolution file will usually  be  a  graymap,  so  that  the  same
       convolution gets applied to each color component.  However, if you want
       to use a pixmap and do a different convolution to different colors, you
       can certainly do that.

       At the edges of the convolved image, where the convolution matrix would
       extend over the edge of the image,  pnmconvol  just  copies  the  input
       pixels directly to the output.


       pnmsmooth(1), pnm(5)


       Copyright (C) 1989, 1991 by Jef Poskanzer.
       Modified 26 November 1994 by Mike Burns,

                               26 November 1994                   pnmconvol(1)