DD::Image::VConvolve Class Reference

Inherits DD::Image::MultiTileIop.

List of all members.

Public Member Functions

void _validate (bool)
void _request (int x, int y, int r, int t, ChannelMask, int count)
virtual IopinputToRead () const
template<class TileType >
void doEngine (int y, int x, int r, ChannelMask channels, Row &row)
 mFnDDImageMultiTileIop_DeclareFunctions_engine (int y, int x, int r, ChannelMask m, Row &row)
 VConvolve (Node *node)
int size () const
float * vector () const
void vector (int s, float *v)
const char * Class () const
const char * node_help () const

Detailed Description

Convolves (filters) the input image by multiplying it by a vector of weights. The vector is assumed to be normalized and should be an odd size to not shift the image.

The zero location in the vector is assumed to be at the bottom. This is upside-down from the ordering used by Convolve.

This operator may be combined with HConvolve to produce the equivalent of a Convolve operator with a NxM rectangular matrix, as long as that matrix is the result of multiplying a 1xM matrix by a Nx1 matrix. The cache is best used if you put the HConvolve after the VConvolve.

Many useful low-pass filters can be represented this way, or approximated. This is thus used by the Blur operator. High-pass filters can also be approximated by subtracting the result of a low-pass filtering from the original picture, Sharpen uses this for that.