Leadtools.ImageProcessing.Color Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
ColorThresholdCommand Class
See Also  Members   Example 



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

Object Model


Syntax

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

Example

Run the ColorThresholdCommand on an image.

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

   Dim leadImage As RasterImage = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "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, LeadtoolsExamples.Common.ImagesPath.Path + "Result.jpg", RasterImageFormat.Jpeg, 24)

   RasterCodecs.Shutdown()
End Sub
C#Copy Code
public void ColorThresholdCommandExample() 

   // Load an image 
   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "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, LeadtoolsExamples.Common.ImagesPath.Path + "Result.jpg", RasterImageFormat.Jpeg, 24); 
 
   RasterCodecs.Shutdown(); 
}

Remarks

Every color space component may have a different range:
Color ComponentRange 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 viceversa.
  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: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also