Description
Applies convolution to the source raster.
Convolution is the modification of a pixel's value based on the
values of its surrounding pixels. The
Kernel
is the numerical matrix that is applied to each pixel in this
process. The convolution operation is discussed in more detail in
numerous texts on image processing and useful convolution kernels
are widely available from various sources.
Public Properties
Divisor |
Gets or sets the divisor
for the result of the convolution kernel operation. |
Kernel |
Gets or sets the
convolution kernel of the filter. The array contains the 9 elements
of the Kernel
of the convolution matrix. The elements are provided as the entire
first row, followed by the entire second row, followed by the
entire third row, each from left to right. |
Offset |
Gets or sets the offset for
the result of the convolution kernel operation. The value is added
to the result of the operation. |
Example
Blur an image with a
convolution matrix
[C#] |
Copy Code
|
IAgStkGraphicsSceneManager manager = ((IAgScenario)root.CurrentScenario).SceneManager;
IAgStkGraphicsScreenOverlayCollectionBase overlayManager = (IAgStkGraphicsScreenOverlayCollectionBase)manager.ScreenOverlays.Overlays;
IAgStkGraphicsRaster image = manager.Initializers.Raster.InitializeWithStringUri(
imageFile);
Array kernel = new object[]
{
1, 1, 1,
1, 1, 1,
1, 1, 1
};
IAgStkGraphicsConvolutionFilter convolutionMatrix = manager.Initializers.ConvolutionFilter.InitializeWithKernelAndDivisor(ref kernel, 9.0);
image.ApplyInPlace((IAgStkGraphicsRasterFilter)convolutionMatrix);
IAgStkGraphicsRendererTexture2D texture = manager.Textures.FromRaster(image);
IAgStkGraphicsTextureScreenOverlay overlay = manager.Initializers.TextureScreenOverlay.Initialize();
((IAgStkGraphicsOverlay)overlay).Width = 0.2;
((IAgStkGraphicsOverlay)overlay).WidthUnit = AgEStkGraphicsScreenOverlayUnit.eStkGraphicsScreenOverlayUnitFraction;
((IAgStkGraphicsOverlay)overlay).Height = 0.2;
((IAgStkGraphicsOverlay)overlay).HeightUnit = AgEStkGraphicsScreenOverlayUnit.eStkGraphicsScreenOverlayUnitFraction;
((IAgStkGraphicsOverlay)overlay).Origin = AgEStkGraphicsScreenOverlayOrigin.eStkGraphicsScreenOverlayOriginBottomLeft;
overlay.Texture = texture;
overlayManager.Add((IAgStkGraphicsScreenOverlay)overlay);
|
|
Blur an image with a
convolution matrix
[Visual Basic .NET] |
Copy Code
|
Dim manager As
IAgStkGraphicsSceneManager = DirectCast(root.CurrentScenario,
IAgScenario).SceneManager
Dim overlayManager As IAgStkGraphicsScreenOverlayCollectionBase =
DirectCast(manager.ScreenOverlays.Overlays,
IAgStkGraphicsScreenOverlayCollectionBase)
Dim image As IAgStkGraphicsRaster =
manager.Initializers.Raster.InitializeWithStringUri( _
imageFile)
Dim kernel As Array =
New Object() {1, 1, 1, 1, 1, 1, _
1, 1, 1}
Dim convolutionMatrix As IAgStkGraphicsConvolutionFilter =
manager.Initializers.ConvolutionFilter.InitializeWithKernelAndDivisor(kernel,
9.0)
image.ApplyInPlace(DirectCast(convolutionMatrix,
IAgStkGraphicsRasterFilter))
Dim texture As IAgStkGraphicsRendererTexture2D =
manager.Textures.FromRaster(image)
Dim overlay As IAgStkGraphicsTextureScreenOverlay =
manager.Initializers.TextureScreenOverlay.Initialize()
DirectCast(overlay, IAgStkGraphicsOverlay).Width = 0.2
DirectCast(overlay, IAgStkGraphicsOverlay).WidthUnit =
AgEStkGraphicsScreenOverlayUnit.eStkGraphicsScreenOverlayUnitFraction
DirectCast(overlay, IAgStkGraphicsOverlay).Height = 0.2
DirectCast(overlay, IAgStkGraphicsOverlay).HeightUnit =
AgEStkGraphicsScreenOverlayUnit.eStkGraphicsScreenOverlayUnitFraction
overlay.Texture = texture
DirectCast(overlay, IAgStkGraphicsOverlay).Origin =
AgEStkGraphicsScreenOverlayOrigin.eStkGraphicsScreenOverlayOriginBottomLeft
overlayManager.Add(DirectCast(overlay,
IAgStkGraphicsScreenOverlay))
|
|
CoClasses that Implement
IAgStkGraphicsConvolutionFilter