Click or drag to resize

ConvolutionFilterCommand Class

Applies a custom Convolution Filter to an image.
Inheritance Hierarchy

Namespace:  Atalasoft.Imaging.ImageProcessing.Filters
Assembly:  Atalasoft.dotImage (in Atalasoft.dotImage.dll) Version: 11.0.0.0.0.297 (.NET 4.5.2, x86)
Syntax
[SerializableAttribute]
public class ConvolutionFilterCommand : ImageRegionCommand, 
	ISerializable

The ConvolutionFilterCommand type exposes the following members.

Constructors
  NameDescription
Public methodConvolutionFilterCommand
Creates a new instance of ConvolutionFilterCommand.
Protected methodConvolutionFilterCommand(SerializationInfo, StreamingContext)
Creates a new instance of ConvolutionFilterCommand from serialization information.
Public methodConvolutionFilterCommand(DoubleMatrix, Double)
Creates a new instance of ConvolutionFilterCommand specifying the matrix and intensity.
Top
Properties
  NameDescription
Public propertyApplyToAnyPixelFormat
Reports whether or not this command will be applied to any supplied PixelFormat image
(Inherited from ImageCommand.)
Public propertyCanApplyToAnyPixelFormat
Returns true if the command can be applied to any PixelFormat.
(Inherited from ImageCommand.)
Public propertyChannelsToProcess
Gets or sets a bit flag indicating the channels to process.
Public propertyInPlaceProcessing
Gets a value indicating if the source image data is processed in-place as opposed to returning a new image.
(Inherited from ImageCommand.)
Public propertyIntensity
Gets or sets a value controlling the intensity of the filter.
Public propertyMatrix

Gets or sets the matrix to apply to the image.

Public propertyProgress
Gets or sets the ProgressEventHandler delegate which can be used to view or cancel the progress of the current process.
(Inherited from ImageCommand.)
Public propertyRegionOfInterest

Gets or sets a RegionOfInterest which will only process the indicated region of the image.

(Inherited from ImageRegionCommand.)
Public propertySupportedPixelFormats
Returns an array of PixelFormats supported by this command.
(Overrides ImageCommandSupportedPixelFormats.)
Public propertyTraditional
Gets or sets a value indicating if the traditional version is used.
Top
Methods
  NameDescription
Public methodApply
Apply the command to the given image.
(Inherited from ImageCommand.)
Public methodApplyToImage Obsolete.
Applies the command to the source AtalaImage.
(Inherited from ImageCommand.)
Protected methodConstructChangedSourceImage
The method is called by the default implementation of Apply. It determines if it is necessary to create a copy of the source image in a different pixel format and if so, determines the best new pixel format and allocates that image.
(Inherited from ImageCommand.)
Protected methodConstructFinalImage
Called by the default implementation of Apply, ConstructFinalImage constructs the image that will be used as the destination image for the command.
(Overrides ImageCommandConstructFinalImage(AtalaImage).)
Protected methodConstructImageResults
Constructs the results object for this command.
(Inherited from ImageCommand.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Protected methodGetChangedPixelFormat
This method is called to change the pixel format of the source image.
(Inherited from ImageCommand.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetObjectData
Fills a SerializationInfo object with information about this command.
(Overrides ImageRegionCommandGetObjectData(SerializationInfo, StreamingContext).)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodImageCommandGetObjectData
Aggregates ImageCommand data into the supplied SerializationInfo object.
(Inherited from ImageCommand.)
Public methodIsPixelFormatSupported
Returns a value indicating if the specified pixel format is supported.
(Inherited from ImageCommand.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodPerformActualCommand
PerformActualCommand does the actual work of the image processing command.
(Overrides ImageCommandPerformActualCommand(AtalaImage, AtalaImage, Rectangle, ImageResults).)
Protected methodSelectBestAlternatePixelFormat
Choose the best pixel format to use for this command when the supplied source image's pixel format is unacceptable.
(Inherited from ImageCommand.)
Protected methodSelectPreferredPixelFormat
Chooses a pixel format that is preferred for this command.
(Overrides ImageCommandSelectPreferredPixelFormat(AtalaImage, PixelFormat, PixelFormat).)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Protected methodVerifyImage
Verify the integrity of an AtalaImage.
(Inherited from ImageCommand.)
Protected methodVerifyProperties
Verify the integrity of properties in the command before processing an image.
(Overrides ImageCommandVerifyProperties(AtalaImage).)
Top
Remarks

This should only be used on continuous-tone images (RGBA, grayscale, RGB, etc.).

If Traditional is true, this can be used to do things like a Gaussian blur, etc., depending on the matrix used.

The number of columns and the number of rows in the matrix must both be odd.

The filter is applied as follows :

M = matrix ( 3 x 3, in this example)

M = 1 1 1 this is a sharpening matrix 1 -8 1 1 1 1

The matrix is centered on the current pixel. In this example, M[4] is the center of the matrix.

k is the inteisity.

P = pixels . Since the matrix is centered on the current pixel, P(x,y), the pixels used in this calculation will be :

P(x-1,y-1) P(x, y-1) P(x+1, y-1) P(x-1,y) P(x, y) P(x+1, y) P(x-1,y+1) P(x, y+1) P(x+1, y+1)

t = sum ( M[i] * P[i] ) [for all elements of the matrix]

if "traditional" processing (see uFlags) , outPixel = k * t ,else , outPixel = curPixel - (k * t)

outPixel is then clipped to 0..255

Matrix M in this example demonstrates the sharpening filter used by this library, if bTraditional is FALSE.

Besides the ability to use matricies of arbitrary size, this object differs from %ConvolutionMatrixCommand% in the way the final calculation is performed.

See Also