←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#
Objective-C
C++/CLI
Java
Python
public class ColorThresholdCommand : RasterCommand 
@interface LTColorThresholdCommand : LTRasterCommand 
public class ColorThresholdCommand 
    extends RasterCommand 
public ref class ColorThresholdCommand : public RasterCommand   
class ColorThresholdCommand(RasterCommand): 
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.

Color Threshold Function - Before

Color Threshold Function - Before

Color Threshold Function - After

Color Threshold Function - After

View additional platform support for this Color Threshold function.

Example

Run the ColorThresholdCommand on an image.

C#
Java
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:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.assertTrue; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.color.*; 
 
 
public void colorThresholdCommandExample() { 
 
    final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
    // Load an image 
    RasterCodecs codecs = new RasterCodecs(); 
    codecs.setThrowExceptionsOnInvalidImages(true); 
 
    RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "Image1.jpg")); 
 
    // Prepare the command 
    ColorThresholdCommandComponent[] components = new ColorThresholdCommandComponent[3]; 
 
    components[0] = new ColorThresholdCommandComponent(); 
    components[0].setMinimumRange(128); 
    components[0].setMaximumRange(255); 
    components[0].setFlags(0); 
    components[1] = new ColorThresholdCommandComponent(); 
    components[1].setMinimumRange(128); 
    components[1].setMaximumRange(255); 
    components[1].setFlags(0); 
    components[2] = new ColorThresholdCommandComponent(); 
    components[2].setMinimumRange(128); 
    components[2].setMaximumRange(255); 
    components[2].setFlags(0); 
 
    ColorThresholdCommand command = new ColorThresholdCommand(ColorThresholdCommandType.RGB, components); 
 
    // Apply color Threshold effect on the image. 
    command.run(image); 
    codecs.save(image, combine(LEAD_VARS_IMAGES_DIR, "Result.jpg"), RasterImageFormat.JPEG, 24); 
 
    System.out.println("Command run and image saved to " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
    assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")).exists()); 
 
} 
Requirements

Target Platforms

Help Version 23.0.2024.3.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Color Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.