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



Using any one of eight color spaces, resets those image's pixel component values that fall inside or outside of a specified range. Supported in Silverlight, Windows Phone 7

Object Model

ColorThresholdCommand ClassColorThresholdCommandComponent Class

Syntax

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

Example

Run the ColorThresholdCommand on an image.

Visual BasicCopy Code
Public Sub ColorThresholdCommandExample()
   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 components() As ColorThresholdCommandComponent
   ReDim components(2)
   components(0) = New ColorThresholdCommandComponent
   components(1) = New ColorThresholdCommandComponent
   components(2) = New ColorThresholdCommandComponent

   components(0).MinimumRange = 128
   components(0).MaximumRange = 255
   components(0).Flags = 0
   components(1).MinimumRange = 128
   components(1).MaximumRange = 255
   components(1).Flags = 0
   components(2).MinimumRange = 128
   components(2).MaximumRange = 255
   components(2).Flags = 0
   Dim command As ColorThresholdCommand = New ColorThresholdCommand(ColorThresholdCommandType.Rgb, components)
   'Apply color Threshold effect on the image.
   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 ColorThresholdCommandExample()
   {
      // Load an image
      RasterCodecs codecs = new RasterCodecs();
      codecs.ThrowExceptionsOnInvalidImages = true;

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

      // Prepare the command
      ColorThresholdCommandComponent[] Components = new ColorThresholdCommandComponent[3];

      Components[0] = new ColorThresholdCommandComponent();
      Components[0].MinimumRange = 128;
      Components[0].MaximumRange = 255;
      Components[0].Flags        = 0;
      Components[1] = new ColorThresholdCommandComponent();
      Components[1].MinimumRange = 128;
      Components[1].MaximumRange = 255;
      Components[1].Flags        = 0;
      Components[2] = new ColorThresholdCommandComponent();
      Components[2].MinimumRange = 128;
      Components[2].MaximumRange = 255;
      Components[2].Flags        = 0;

      ColorThresholdCommand command = new ColorThresholdCommand(ColorThresholdCommandType.Rgb, Components);
      //Apply color Threshold effect on the image.
      command.Run(image);
      codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24);

   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
SilverlightCSharpCopy Code
public void ColorThresholdCommandExample(RasterImage image, Stream outStream)
{
   // Prepare the command
   ColorThresholdCommandComponent[] Components = new ColorThresholdCommandComponent[3];
   Components[0] = new ColorThresholdCommandComponent();
   Components[0].MinimumRange = 128;
   Components[0].MaximumRange = 255;
   Components[0].Flags        = 0;
   Components[1] = new ColorThresholdCommandComponent();
   Components[1].MinimumRange = 128;
   Components[1].MaximumRange = 255;
   Components[1].Flags        = 0;
   Components[2] = new ColorThresholdCommandComponent();
   Components[2].MinimumRange = 128;
   Components[2].MaximumRange = 255;
   Components[2].Flags        = 0;

   ColorThresholdCommand command = new ColorThresholdCommand(ColorThresholdCommandType.Rgb, Components);
   //Apply color Threshold effect on the image.
   command.Run(image);

   // Save result image
   RasterCodecs codecs = new RasterCodecs();
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
   image.Dispose();
}
SilverlightVBCopy Code
Public Sub ColorThresholdCommandExample(ByVal image As RasterImage, ByVal outStream As Stream)
   ' Prepare the command
   Dim Components As ColorThresholdCommandComponent() = New ColorThresholdCommandComponent(2){}
   Components(0) = New ColorThresholdCommandComponent()
   Components(0).MinimumRange = 128
   Components(0).MaximumRange = 255
   Components(0).Flags = 0
   Components(1) = New ColorThresholdCommandComponent()
   Components(1).MinimumRange = 128
   Components(1).MaximumRange = 255
   Components(1).Flags = 0
   Components(2) = New ColorThresholdCommandComponent()
   Components(2).MinimumRange = 128
   Components(2).MaximumRange = 255
   Components(2).Flags = 0

   Dim command As ColorThresholdCommand = New ColorThresholdCommand(ColorThresholdCommandType.Rgb, Components)
   'Apply color Threshold effect on the image.
   command.Run(image)

   ' Save result image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
   image.Dispose()
End Sub

Remarks

Every color space component may have a different range:
Color Component Range for 8 bit per component. Range for 16 bit per component.
RGB
R 0 ... 255 0 ... 65535
G 0 ... 255 0 ... 65535
B 0 ... 255 0 ... 65535
HSV
H 0 ... 360 0 ... 36000
S 0 ... 100 0 ... 10000
V 0 ... 255 0 ... 65535
HLS
H 0 ... 360 0 ... 36000
L 0 ... 255 0 ... 65535
S 0 ... 100 0 ... 10000
XYZ
X 0 ... 255 0 ... 65535
Y 0 ... 255 0 ... 65535
Z 0 ... 255 0 ... 65535
YCrCb
Y 0 ... 255 0 ... 65535
Cr -128 ... 127 -32768 ... 32767
Cb -128 ... 127 -32768 ... 32767
YUV
Y 0 ... 255 0 ... 65535
U -112 ... 111 -28567 ... 28566
V -138 ... 137 -35337 ... 35336
LAB
L 0 ... 100 0 ... 10000
A -128 ... 127 -32768 ... 32767
B -128 ... 127 -32768 ... 32767
CMY
C 0 ... 255 0 ... 65535
M 0 ... 255 0 ... 65535
Y 0 ... 255 0 ... 65535


This class works as follows:
  1. The image is converted to the required color space.
  2. For every pixel, the following operations are performed: Each component is compared with the MinimumRange and MaximumRange values of the appropriate ColorThresholdCommandComponent class.
    • If it is inside the range, the component is considered to have "passed" the test.
    • If it is outside the range, the component has been rejected". The ColorThresholdCommandFlags.BandReject flag inverts this by making "rejected" components "passed" and vice-versa.
  3. If ColorThresholdCommandFlags.EffectChannel is set, the components are modified independently. If ColorThresholdCommandFlags.EffectAll has been set, the pixel is rejected by the test if any component is rejected. If the pixel/component is rejected, then:
  • This class works for 1, 2, 3, _ 8,16, 24, 32, 48 and 64-bit color images and can support regions for 24 and 48-bit images. If a 24 or 48-bit image has a region the effect will be applied on the region only.
  • One class is used for each color component. The order is considered to be the same as in the xxx Space name. For example, for Rgb Space:
    • Components[0] class is used for the Red component.
    • Components[1] class is used for the Green component.
    • Components[2] class is used for the Blue component.
  • This command does not support 32-bit grayscale images.
  • This command does not support signed images.

For more information, refer to Introduction to Image Processing With LEADTOOLS.
For more information, refer to Correcting Colors.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.Color.ColorThresholdCommand

Requirements

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

See Also