Convolution functions for buffers
More...
#include <Inventor/algorithms/SoConvolution.h>
Public Member Functions | |
| SoConvolution () | |
| SoConvolution constructor. | |
| virtual int | doSeparateConvolution1D (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| This function performs a 1D convolution on a two dimensional buffer using a 1D kernel. | |
| virtual int | doSeparateConvolution2D (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| This function performs a 2D convolution on a two dimensional buffer using a 1D kernel. | |
| virtual int | doSeparateConvolutionRow (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| This function performs a row convolution on a two dimensional buffer using a 1D kernel. | |
| virtual int | doSeparateConvolutionColumn (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| This function performs a column convolution on a two dimensional buffe using a 1D kernel. | |
| int | doSeparateConvolution1D (SoCpuBufferObject *sourceBufferObject, SoCpuBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| Fast version for CPU buffers. | |
| int | doSeparateConvolution2D (SoCpuBufferObject *sourceBufferObject, SoCpuBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| Fast version for CPU buffers. | |
| int | doSeparateConvolutionRow (SoCpuBufferObject *sourceBufferObject, SoCpuBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| Fast version for CPU buffers. | |
| int | doSeparateConvolutionColumn (SoCpuBufferObject *sourceBufferObject, SoCpuBufferObject *targetBufferObject, float *kernelData, int kernelSize, int width, int height) |
| Fast version for CPU buffers. | |
Convolution functions for buffers
This module provides functions to perform convolution on 2D buffers.
Examples:
SoAlgorithms, SoArithmetic, SoConversion, SoDataExtract, SoSeismic
Definition at line 50 of file SoConvolution.h.
| SoConvolution::SoConvolution | ( | ) |
SoConvolution constructor.
|
virtual |
This function performs a 1D convolution on a two dimensional buffer using a 1D kernel.
This convolution is equivalent to a row convolution.
| sourceBufferObject | The input float buffer. |
| targetBufferObject | The output float buffer. |
| kernelData | The kernel values. |
| kernelSize | The kernel size. |
| width | The width of the two dimensional buffer. |
| height | The height of the two dimensional buffer. |
| int SoConvolution::doSeparateConvolution1D | ( | SoCpuBufferObject * | sourceBufferObject, |
| SoCpuBufferObject * | targetBufferObject, | ||
| float * | kernelData, | ||
| int | kernelSize, | ||
| int | width, | ||
| int | height ) |
Fast version for CPU buffers.
The general version maps the user buffers to CPU buffers and calls this function
|
virtual |
This function performs a 2D convolution on a two dimensional buffer using a 1D kernel.
The 2D convolution performs a row convolution followed by a column convolution using the same kernel for the two passes.
To do a 2D convolution with two different 1D kernels use the row/column methods doSeparateConvolutionRow() and doSeparateConvolutionColumn().
| sourceBufferObject | The input float buffer. |
| targetBufferObject | The output float buffer. |
| kernelData | The kernel values. |
| kernelSize | The kernel size. |
| width | The width of the two dimensional buffer. |
| height | The height of the two dimensional buffer. |
| int SoConvolution::doSeparateConvolution2D | ( | SoCpuBufferObject * | sourceBufferObject, |
| SoCpuBufferObject * | targetBufferObject, | ||
| float * | kernelData, | ||
| int | kernelSize, | ||
| int | width, | ||
| int | height ) |
Fast version for CPU buffers.
The general version maps the user buffers to CPU buffers and calls this function
|
virtual |
This function performs a column convolution on a two dimensional buffe using a 1D kernel.
| sourceBufferObject | The input float buffer. |
| targetBufferObject | The output float buffer. |
| kernelData | The kernel values. |
| kernelSize | The kernel size. |
| width | The width of the two dimensional buffer. |
| height | The height of the two dimensional buffer. |
| int SoConvolution::doSeparateConvolutionColumn | ( | SoCpuBufferObject * | sourceBufferObject, |
| SoCpuBufferObject * | targetBufferObject, | ||
| float * | kernelData, | ||
| int | kernelSize, | ||
| int | width, | ||
| int | height ) |
Fast version for CPU buffers.
The general version maps the user buffers to CPU buffers and calls this function
|
virtual |
This function performs a row convolution on a two dimensional buffer using a 1D kernel.
| sourceBufferObject | The input float buffer. |
| targetBufferObject | The output float buffer. |
| kernelData | The kernel values. |
| kernelSize | The kernel size. |
| width | The width of the two dimensional buffer. |
| height | The height of the two dimensional buffer. |
| int SoConvolution::doSeparateConvolutionRow | ( | SoCpuBufferObject * | sourceBufferObject, |
| SoCpuBufferObject * | targetBufferObject, | ||
| float * | kernelData, | ||
| int | kernelSize, | ||
| int | width, | ||
| int | height ) |
Fast version for CPU buffers.
The general version maps the user buffers to CPU buffers and calls this function