Provided by: netpbm_10.0-15_amd64 bug


       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)