pnmconvol(1)pnmconvol(1)NAMEpnmconvol - general MxN convolution on a portable anymap
SYNOPSISpnmconvol convolutionfile [pnmfile]
DESCRIPTION
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 rela
tive.
Here is a sample convolution file; it does a simple aver
age of the nine immediate neighbors, resulting in a
smoothed image:
P2
3 3
18
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 normaliza
tion 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.
SEE ALSOpnmsmooth(1), pnm(5)AUTHORS
Copyright (C) 1989, 1991 by Jef Poskanzer.
Modified 26 November 1994 by Mike Burns,
burns@chem.psu.edu
26 November 1994 pnmconvol(1)