Inherits DD::Image::Iop.
Public Member Functions | |
void | _validate (bool) |
void | _request (int x, int y, int r, int t, ChannelMask, int count) |
template<class TileType > | |
void | doEngine (int y, int x, int r, ChannelMask, Row &) |
void | engine (int y, int x, int r, ChannelMask, 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 |
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.