LEADTOOLS Image Processing (Leadtools.ImageProcessing.Effects assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
UserFilterCommand Class
See Also  Members  
Leadtools.ImageProcessing.Effects Namespace : UserFilterCommand Class



Filters the image based on a user-defined filter / mask. This command is similar to the spatial and binary filter commands. Supported in Silverlight, Windows Phone 7

Object Model

UserFilterCommand Class

Syntax

Visual Basic (Declaration) 
Public Class UserFilterCommand 
   Inherits Leadtools.ImageProcessing.RasterCommand
   Implements IRasterCommand 
Visual Basic (Usage)Copy Code
Dim instance As UserFilterCommand
C# 
public class UserFilterCommand : Leadtools.ImageProcessing.RasterCommand, IRasterCommand  
C++/CLI 
public ref class UserFilterCommand : public Leadtools.ImageProcessing.RasterCommand, IRasterCommand  

Example

Run the Leadtools.ImageProcessing.Effects.UserFilterCommand on an image, In this example the high pass.filter will be applied using user defined matrix.

Visual BasicCopy Code
Public Sub UserFilterCommandExample()
   Dim codecs As New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True

   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"))

   ' Prepare the command
   Dim i As Integer
   Dim j As Integer
   Dim matrix() As Integer
   ReDim matrix(8)

   Dim command As UserFilterCommand = New UserFilterCommand
   command.CenterPoint = New LeadPoint(1, 1)
   command.Divisor = 1
   command.Offset = 0
   command.Type = UserFilterCommandType.Sum
   command.FilterHeight = 3
   command.FilterWidth = 3
   command.Matrix = matrix

   ' Initialize the array with factor used to apply the high pass filter.
   For i = 0 To 2
      For j = 0 To 2
         If (j = 1 Or i = 1) Then
            If (j = 1 And i = 1) Then
               command.Matrix(i * 3 + j) = 5
            Else
               command.Matrix(i * 3 + j) = -1
            End If
         Else
            command.Matrix(i * 3 + j) = 0
         End If
      Next
   Next

   ' Apply the high pass custom filter.
   command.Run(leadImage)
   codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24)

End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
public void UserFilterCommandExample()
   {
      // Load an image
      RasterCodecs codecs = new RasterCodecs();
      codecs.ThrowExceptionsOnInvalidImages = true;

      RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"));

      // Prepare the command
      int i, j;
      UserFilterCommand command = new UserFilterCommand();
      command.CenterPoint = new LeadPoint(1, 1);
      command.Divisor = 1;
      command.Offset = 0;
      command.Type = UserFilterCommandType.Sum;
      command.FilterHeight = 3;
      command.FilterWidth = 3;
      command.Matrix = new int[9];

      // Initialize the array with factor used to apply the high pass filter.
      for(i = 0; i < 3; i++)
      {
         for(j = 0; j < 3; j++)
         {
            if(j == 1 || i == 1) 
            {
               if(j == 1 && i == 1) 
                  command.Matrix[i * 3 + j] = 5; 
               else 
                  command.Matrix[i * 3 + j] = -1; 
            }
            else
               command.Matrix[i * 3 + j] = 0; 
         }
      }

      // Apply the high pass custom filter.
      command.Run(image);

   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
SilverlightCSharpCopy Code
public void UserFilterCommandExample(RasterImage image, Stream outStream)
{
   // Prepare the command
   int i, j;
   UserFilterCommand command = new UserFilterCommand();
   command.CenterPoint = new LeadPoint(1, 1);
   command.Divisor = 1;
   command.Offset = 0;
   command.Type = UserFilterCommandType.Sum;
   command.FilterHeight = 3;
   command.FilterWidth = 3;
   command.Matrix = new int[9];
   // Initialize the array with factor used to apply the high pass filter.
   for (i = 0; i < 3; i++)
   {
      for (j = 0; j < 3; j++)
      {
         if (j == 1 || i == 1)
         {
            if (j == 1 && i == 1)
               command.Matrix[i * 3 + j] = 5;
            else
               command.Matrix[i * 3 + j] = -1;
         }
         else
            command.Matrix[i * 3 + j] = 0;
      }
   }

   // Apply the high pass custom filter.
   command.Run(image);
   // Save result image
   RasterCodecs codecs = new RasterCodecs();
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
   image.Dispose();
}
SilverlightVBCopy Code
Public Sub UserFilterCommandExample(ByVal image As RasterImage, ByVal outStream As Stream)
   ' Prepare the command
   Dim i, j As Integer
   Dim command As UserFilterCommand = New UserFilterCommand()
   command.CenterPoint = New LeadPoint(1, 1)
   command.Divisor = 1
   command.Offset = 0
   command.Type = UserFilterCommandType.Sum
   command.FilterHeight = 3
   command.FilterWidth = 3
   command.Matrix = New Integer(8){}
   ' Initialize the array with factor used to apply the high pass filter.
   For i = 0 To 2
      For j = 0 To 2
         If j = 1 OrElse i = 1 Then
            If j = 1 AndAlso i = 1 Then
               command.Matrix(i * 3 + j) = 5
            Else
               command.Matrix(i * 3 + j) = -1
            End If
         Else
            command.Matrix(i * 3 + j) = 0
         End If
      Next j
   Next i

   ' Apply the high pass custom filter.
   command.Run(image)
   ' Save result image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
   image.Dispose()
End Sub

Remarks

  • With this command you can create a user-defined filter and apply it to the image. The filter has a rectangular form (matrix) where the values are user-defined. It allows the creation of simple customized filters, where each value in matrix is multiplied by the corresponding pixel, and then the specified operation is performed on the results.
  • When the filter is applied to pixels from the edge and you choose the sum operation, the edge rows and columns are duplicated. For example, if the pixel (-1, 5) is needed, the pixel (0, 5) is used instead.
  • This command supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
  • This command does not support 32-bit grayscale images.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.Effects.UserFilterCommand

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also

Reference

UserFilterCommand Members
Leadtools.ImageProcessing.Effects Namespace
Leadtools.ImageProcessing.Core.MinimumCommand
Leadtools.ImageProcessing.Core.MaximumCommand
AddNoiseCommand Class
SharpenCommand Class
Leadtools.ImageProcessing.Color.PosterizeCommand
MosaicCommand Class
EmbossCommand Class
AverageCommand Class
Leadtools.ImageProcessing.Core.MedianCommand
Leadtools.ImageProcessing.Color.IntensityDetectCommand
SpatialFilterCommand Class
BinaryFilterCommand Class
OilifyCommand Class
Leadtools.ImageProcessing.Color.SolarizeCommand
Leadtools.ImageProcessing.Core.WindowLevelCommand
Leadtools.ImageProcessing.SpecialEffects.ShadowCommand
Leadtools.ImageProcessing.Color.ChangeHueSaturationIntensityCommand
Leadtools.ImageProcessing.Color.ColorReplaceCommand
Leadtools.ImageProcessing.Color.ColorThresholdCommand
Leadtools.ImageProcessing.Core.DiscreteFourierTransformCommand
DirectionEdgeStatisticalCommand Class
Leadtools.ImageProcessing.Core.FastFourierTransformCommand
Leadtools.ImageProcessing.Core.FrequencyFilterCommand
Leadtools.ImageProcessing.Core.FrequencyFilterMaskCommand
Leadtools.ImageProcessing.Core.FourierTransformDisplayCommand
StatisticsInformationCommand Class
FeretsDiameterCommand Class
ObjectInformationCommand Class
RegionContourPointsCommand Class
GetRegionPerimeterLength Method
Leadtools.ImageProcessing.Color.MathematicalFunctionCommand
Leadtools.ImageProcessing.SpecialEffects.RevEffectCommand
Leadtools.ImageProcessing.Color.SegmentCommand
Leadtools.ImageProcessing.Core.SubtractBackgroundCommand
HighPassCommand Class