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