next up previous contents
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
\begin{figure}\begin{quote}
\begin{verbatim}example% vips -help convolution
fu...
...ve zero crossings in IM_BANDFMT_INT image\end{verbatim}
\end{quote}
\end{figure}


next up previous contents
Next: 2.8 Frequency filtering Up: 2. VIPS packages Previous: 2.6 Matricies   Contents
John Cupitt 2004-11-02