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: 2024.1.1.0 (2024.1.1)
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 OIV.Inventor.Algorithms.SoConvolution.DoSeparateConvolutionRow(OIV.Inventor.Devices.SoBufferObject, OIV.Inventor.Devices.SoBufferObject, System.Single[], System.Int32, System.Int32) and OIV.Inventor.Algorithms.SoConvolution.DoSeparateConvolutionColumn(OIV.Inventor.Devices.SoBufferObject, OIV.Inventor.Devices.SoBufferObject, System.Single[], System.Int32, System.Int32).

See Also