pnmconvol

Section: User Commands (1)
Updated: 13 January 1991
Index Return to Main Contents
 

NAME

pnmconvol - general MxN convolution on a portable anymap  

SYNOPSIS

pnmconvol 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 relative.

Here is a sample convolution file; it does a simple average 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 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.  

SEE ALSO

pnmsmooth(1), pnm(5)  

AUTHOR

Copyright (C) 1989, 1991 by Jef Poskanzer.


 

Index

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO
AUTHOR

This document was created by man2html, using the manual pages.
Time: 23:53:56 GMT, February 15, 2023