This program is part of Netpbm.
pgmkernel generates a convolution kernel that you can use with pnmconvol. The kernel is one where the weight of each location is inversely proportional to its distance from the center of the kernel.
pgmkernel generates a PGM image of size width by height (or width by width if you don't specify height).
pgmkernel computes the convolution function K as follows.
K(i,j) = 1 / ( 1 + w * sqrt(i^2 + j^2))where w is a coefficient specified via the -weight option. i and j are measured in pixels. K is zero everywhere beyond the specified kernel width and height.
pgmkernel generates the output PGM file in the Plain (text) variation of PGM.
The computation time is proportional to width*height. This increases rapidly with the increase of the kernel size. A better approach could be using a FFT in these cases.