←Select platform

ColorThresholdCommand Class

Summary

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

Syntax

C#
VB
Java
Objective-C
WinRT C#
C++
public sealed class ColorThresholdCommand : Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand
@interface LTColorThresholdCommand : LTRasterCommand
public class ColorThresholdCommand extends RasterCommand
function Leadtools.ImageProcessing.Color.ColorThresholdCommand()

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:

  4. 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.

  5. 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.
  6. This command does not support grayscale images.
  7. This command does not support signed images.
  8. This command does not support 1-bit bitonal images.

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

Example

Run the ColorThresholdCommand on an image.

C#
VB
WinRT C#
Silverlight C#
Silverlight VB
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Color 
 
    
Public Sub ColorThresholdCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "ImageProcessingDemo\\Image1.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 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
 
       
public void ColorThresholdCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "ImageProcessingDemo\\Image1.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"; 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
 
       
public async Task ColorThresholdCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   // Load the image 
   string srcFileName = @"Assets\Image1.cmp"; 
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName); 
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)); 
 
   // 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); 
 
   string destFileName = @"result.jpg"; 
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName); 
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Jpeg, 0); 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Examples; 
 
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(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Color 
 
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 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.ImageProcessing.Color Assembly
Click or drag to resize