Next: 2.8 Frequency filtering Up: 2. VIPS packages Previous: 2.6 Matricies Contents

# 2.7 Convolution

See figure 2.9.

The functions available in the convolution package can be split into five main groups.

First, are the convolution functions. The most useful function is `im_conv()` which will convolve any non-complex type with an `INTMASK` matrix. The output image will have the same size, type, and number of bands as the input image. Of the other `im_conv()` functions, functions whose name ends in `_raw` do not add a black border around the output image, functions ending in `f` use a `DOUBLEMASK` matrix and write float (or double) output, and functions containing `sep` are for seperable convolutions. `im_compass()`, `im_lindetect()` and `im_gradient()` convolve with rotating masks. `im_embed()` is used by the convolution functions to add the border to the output.

Next, are the build functions. `im_gauss_*mask()` and its ilk generate gaussian masks, `im_log_*mask()` generate logs of Laplacians. `im_addgnoise()` and `im_gaussnoise()` create or add gaussian noise to an image.

Two functions do correlation: `im_fastcor()` does a quick and dirty correlation, `im_spcor()` calculates true spatial correlation, and is rather slow.

Some functions are provided for analysing images: `im_zerox()` counts zero-crossing points in an image, `im_mpercent()` finds a threshold that will isolate a percentage of points in an image.

Finally, `im_resize_linear()` and `im_shrink()` do as you would expect.

Figure 2.9: Convolution functions

Next: 2.8 Frequency filtering Up: 2. VIPS packages Previous: 2.6 Matricies Contents