Click or drag to resize
SoConvolutionDoSeparateConvolution2D Method (SoBufferObject, SoBufferObject, Single, Int32, Int32)

This function performs a 2D convolution on a two dimensional buffer using a 1D kernel.

Namespace: OIV.Inventor.Algorithms
Assembly: OIV.Inventor.Algorithms (in OIV.Inventor.Algorithms.dll) Version: 9.9.36.0 (9.9.36.0)
Syntax
public int DoSeparateConvolution2D(
	SoBufferObject sourceBufferObject,
	SoBufferObject targetBufferObject,
	float[] kernelData,
	int width,
	int height
)

Parameters

sourceBufferObject
Type: OIV.Inventor.DevicesSoBufferObject

The input float buffer.

targetBufferObject
Type: OIV.Inventor.DevicesSoBufferObject

The output float buffer.

kernelData
Type: SystemSingle

The kernel values.

width
Type: SystemInt32

The width of the two dimensional buffer.

height
Type: SystemInt32

The height of the two dimensional buffer.

Return Value

Type: Int32

Returns 0 if there is no error, 1 if one of the buffers is two small.

Remarks

  • The data in the input buffer must contain floats.

  • The function puts float values in the output buffer.

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().

See Also