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