←Select platform

ApplyMathematicalLogicCommandFlags Enumeration

Summary
Enumeration flags that identify the channel that will be used, the treatment of the input pixel values, the mathematical operation, and the treatment of the output pixel values.
Syntax
C#
Objective-C
C++/CLI
Java
Python
[FlagsAttribute()] 
public enum ApplyMathematicalLogicCommandFlags   
typedef NS_OPTIONS(NSUInteger, LTApplyMathematicalLogicCommandFlags) 
public final class ApplyMathematicalLogicCommandFlags 
    extends java.lang.Enum<ApplyMathematicalLogicCommandFlags> 
[FlagsAttribute()] 
public enum class ApplyMathematicalLogicCommandFlags   
class ApplyMathematicalLogicCommandFlags(Enum): 
   OperationAnd = 0 
   OperationAnd = 0 
   OperationAnd = 0 
   OperationAnd = 0 
   ResultDoNothing, Master, ValueDoNothing, Red = 1 
   ResultDoNothing, Master, ValueDoNothing, Green = 2 
   ResultDoNothing, Master, ValueDoNothing, Blue = 3 
   ResultDoNothing, Master, ValueDoNothing, ValueNot = 16 
   ResultDoNothing, Master, ValueDoNothing, ValueZero = 32 
   ResultDoNothing, Master, ValueDoNothing, ValueOne = 48 
   ResultDoNothing, Master, ValueDoNothing, OperationOr = 256 
   ResultDoNothing, Master, ValueDoNothing, OperationXor = 512 
   ResultDoNothing, Master, ValueDoNothing, OperationAdd = 768 
   ResultDoNothing, Master, ValueDoNothing, OperationSubtractFactor = 1024 
   ResultDoNothing, Master, ValueDoNothing, OperationSubtractValue = 1280 
   ResultDoNothing, Master, ValueDoNothing, OperationAbsoluteDifference = 1536 
   ResultDoNothing, Master, ValueDoNothing, OperationMultiply = 1792 
   ResultDoNothing, Master, ValueDoNothing, OperationDivisionByFactor = 2048 
   ResultDoNothing, Master, ValueDoNothing, OperationDivisionByValue = 2304 
   ResultDoNothing, Master, ValueDoNothing, OperationAverage = 2560 
   ResultDoNothing, Master, ValueDoNothing, OperationMinimum = 2816 
   ResultDoNothing, Master, ValueDoNothing, OperationMaximum = 3072 
   ResultDoNothing, Master, ValueDoNothing, ResultNot = 4096 
   ResultDoNothing, Master, ValueDoNothing, ResultZero = 8192 
   ResultDoNothing, Master, ValueDoNothing, ResultOne = 12288 
Members
ValueMemberDescription
0x00000000Master All channels.
0x00000000ValueDoNothing No change.
0x00000000OperationAnd Combine each pixel component value and the Factor property using a bitwise AND (&). (pixel = pixel & Factor)
0x00000000ResultDoNothing No change.
0x00000001Red Red channel only.
0x00000002Green Green channel only.
0x00000003Blue Blue channel only.
0x00000010ValueNot Invert the color, resulting in its complement.
0x00000020ValueZero Change all bits to 0.
0x00000030ValueOne Change all bits to 1.
0x00000100OperationOr Combine each pixel component value and the Factor property using a bitwise OR ( ¦ ). (pixel = pixel | Factor)
0x00000200OperationXor Combine each pixel component value and the Factor property using a bitwise XOR (^). (pixel = pixel ^ Factor)
0x00000300OperationAdd Add pixel component value to the Factor property, clamping the result to the maximum allowed pixel value. (pixel = min(pixel + Factor, MaximumPixelValue) )
0x00000400OperationSubtractFactor Subtract each pixel component value from the Factor property, clamping the result to the allowed pixel range. (pixel = min(max(Factor - pixel, MinimumPixelValue), MaximumPixelValue) )
0x00000500OperationSubtractValue Subtract the Factor property from each pixel component value, clamping the result to the allowed pixel range. (pixel = min(max(pixel - Factor), MinimumPixelValue, MaximumPixelValue) )
0x00000600OperationAbsoluteDifference Calculate the Absolute difference between the Factor property and each pixel component value. (pixel = abs(pixel - Factor))
0x00000700OperationMultiply Multiply each pixel component value by Factor/100. (pixel = pixel * Factor / 100)
0x00000800OperationDivisionByFactor Divide each pixel component value by Factor/100. An error will be returned if Factor = 0. (pixel = pixel * 100 / Factor)
0x00000900OperationDivisionByValue Divide the Factor property by each pixel value. If the pixel value is 0, the result is set to the maximum allowed pixel value. (pixel = pixel ? min(Factor / pixel, MaximumPixelValue) : MaximumPixelValue)
0x00000A00OperationAverage Use the average of the each pixel component value and the Factor property. (pixel = (pixel+Factor) / 2).
0x00000B00OperationMinimum Use the lesser of the pixel component values and the Factor property. (pixel = min(pixel, Factor) )
0x00000C00OperationMaximum Use the greater of the pixel component values and the Factor property. (pixel = max(pixel, Factor) )
0x00001000ResultNot Invert the color, resulting in its complement.
0x00002000ResultZero Change all bits to 0.
0x00003000ResultOne Change all bits to 1.
Remarks

These flags have a FlagsAttribute attribute that allows a bitwise combination of its member values. You can use a bitwise OR ( ¦ ) to specify one flag from each group.

Group Flags
Flags that indicate the channel that will be used Master, Red, Green, Blue
Flags that indicate how to treat the color value ValueDoNothing, ValueNot, ValueZero, ValueOne
Flags that indicate the mathematical operation to use OperationAnd, ValueNot, ValueZero, ValueOne, OperationAnd, OperationOr, OperationXor, OperationAdd, OperationSubtractFactor, OperationSubtractValue, OperationAbsoluteDifference, OperationMultiply, OperationDivisionByFactor, OperationDivisionByValue, OperationAverage, OperationMinimum, OperationMaximum
Flags that indicate how to treat the output value ResultDoNothing, ResultNot, ResultZero, ResultOne
  • The way MinimumPixelValue and MaximumPixelValue are calculated depends on the bits per pixel and whether the image is signed or unsigned:
    • if the image is unsigned (most common):
      • MaximumPixelValue will be : 255 (8-bit), 4095 (12-bit) or 65535 (16-bit)
      • MinimumPixelValue = 0
    • if the image is signed (rare case):
      • MaximumPixelValue will be : 127 (8-bit), 2047 (12-bit) or 32767 (16-bit)
      • MinimumPixelValue will be -128 (8-bit), -2048 (12-bit) or -32768 (16-bit)
  • If the Flags property is set to OperationAnd, OperationOr, OperationXor, OperationAdd, OperationMultiply, OperationMaximum, OperationMinimum, OperationDivisionByValue, or OperationSubtractValue, the valid range of the Factor property is from MinimumPixelValue to MaximumPixelValue.
  • If the Flags property is set to OperationSubtract, OperationDifference, or OperationAverage, the valid range of the Factor property is from 2 * MinimumPixelValue to 2 * MaximumPixelValue.

Calculating Master Channel Values

In order to speed up widely used image processing filters in LEADTOOLS, the grayscale value (master channel) of a colored image is calculated using the following formulas:

#define CalcGrayValue(r, g, b) ((L_UCHAR)(((L_UCHAR) (((2 * (L_UINT) (r)) + (5 * (L_UINT) (g)) + (L_UINT) (b) + 4) / 8)))) 
#define CalcGrayValue16(r, g, b) ((L_UINT16) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8)) 
#define CalcGrayValue32(r, g, b) ((L_UINT32) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8)) 
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.