←Select platform

WindowLevelCommand Class

Summary
Converts a 12 or 16-bit grayscale image to an 8-bit grayscale or a 24-bit RGB image. This class is available in Medical toolkits only.
Syntax
C#
VB
Objective-C
C++
Java
public class WindowLevelCommand : RasterCommand 
Public Class WindowLevelCommand  
   Inherits RasterCommand 
@interface LTWindowLevelCommand : LTRasterCommand 
public class WindowLevelCommand extends RasterCommand 
public ref class WindowLevelCommand : public RasterCommand   
Remarks
  • This command supports 12 and 16-bit grayscale. Support for 12 and 16-bit grayscale images is available only in the Document/Medical toolkits.
  • This command does not support 32-bit grayscale images.
  • RasterByteOrder.Romm and RasterByteOrder.Gray are not supported by this command.

Only TIFF and DICOM file formats are capable of saving images that have been window-leveled. Images can be window-leveled by calling WindowLevel and specifying RasterWindowLevelMode.PaintAndProcessing for the flags parameter, by using the WindowLevelCommand or by loading an image from a file format that supports Window Leveling. If a window-leveled image is saved as any other file format, the image data will be converted before being saved. For more information, refer to Saving Window-Leveled Images. See WindowLevelExtCommand for a version of this class using 16-bit lookup tables. LEADTOOLS supports two types of LUTs for 10-16-bit grayscale images (8-bit LUT and 16-bit LUT). Typical grayscale image display and processing is done using an 8-bit LUT. But, you can also use a 16-bit LUT, which offers more precision. Some special video cards and monitors also support display of grayscale images using a 16-bit LUT. For more information, refer to Introduction to Image Processing With LEADTOOLS. For more information, refer to Grayscale Images.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
 
public void WindowLevelCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")); 
 
   // Prepare the command 
   int x; 
   byte y; 
   int Size; 
   RasterColor[] LookupTable; 
 
   //Change the image to 16-bit grayscale 
   GrayscaleCommand graycommand = new GrayscaleCommand(16); 
   MinMaxBitsCommand MinMaxBits = new MinMaxBitsCommand(); 
   MinMaxValuesCommand MinMaxValues = new MinMaxValuesCommand(); 
   WindowLevelCommand command = new WindowLevelCommand(); 
 
   graycommand.Run(image); 
   MinMaxBits.Run(image); 
   MinMaxValues.Run(image); 
 
   Size = (1 << (MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1)); 
   LookupTable = new Leadtools.RasterColor[Size]; 
 
   // fill the first half of the LookupTable with RED. 
   for (x = 0; x < Size / 2; x++) 
      LookupTable[x] = new Leadtools.RasterColor(255, 0, 0); 
 
   // fill the rest with gray values. 
   for (x = Size / 2; x < Size; x++) 
   { 
      y = (byte)((x - MinMaxValues.MinimumValue) * 255 / (MinMaxValues.MaximumValue - MinMaxValues.MinimumValue)); 
      LookupTable[x] = new Leadtools.RasterColor(y, y, y); 
   } 
 
   command.HighBit = MinMaxBits.MaximumBit; 
   command.LowBit = MinMaxBits.MinimumBit; 
   command.LookupTable = LookupTable; 
   command.Order = Leadtools.RasterByteOrder.Bgr; 
 
   command.Run(image); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
 
Public Sub WindowLevelCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")) 
 
   ' Prepare the command 
   'Change the image to 16-bit grayscale 
   Dim graycommand As GrayscaleCommand = New GrayscaleCommand(16) 
   Dim command As WindowLevelCommand = New WindowLevelCommand 
   graycommand.Run(leadImage) 
 
   Dim minValue As Integer = leadImage.MinValue 
   Dim maxValue As Integer = leadImage.MaxValue 
   Dim minBit As Integer = leadImage.LowBit 
   Dim maxBit As Integer = leadImage.HighBit 
 
   Dim Size As Integer = (1 << (maxBit - minBit + 1)) 
   Dim LookupTable() As RasterColor 
   ReDim LookupTable(Size - 1) 
 
   ' fill the first half of the LookupTable with RED. 
   Dim x As Integer 
   For x = 0 To Size \ 2 - 1 
      LookupTable(x) = New RasterColor(255, 0, 0) 
   Next 
 
   ' fill the rest with gray values. 
   For x = Size \ 2 To Size - 1 
      Dim y As Byte = Convert.ToByte((x - minValue) * 255 / (maxValue - minValue)) 
      LookupTable(x) = New RasterColor(y, y, y) 
   Next 
 
   command.HighBit = maxBit 
   command.LowBit = minBit 
 
   command.LookupTable = LookupTable 
   command.Order = RasterByteOrder.Bgr 
   command.Run(leadImage) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

See Also

Reference

WindowLevelCommand Members

Leadtools.ImageProcessing.Core Namespace

Introduction to Image Processing With LEADTOOLS

Manipulating Image Data

Grayscale Images

Leadtools.RasterPalette.WindowLevelFillLookupTable(Leadtools.RasterColor[],Leadtools.RasterColor,Leadtools.RasterColor,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,Leadtools.RasterPaletteWindowLevelFlags)

ApplyVoiLookupTableCommand Class

Leadtools.ImageProcessing.Color.ChannelMixerCommand

Leadtools.ImageProcessing.Effects.DeinterlaceCommand

Leadtools.ImageProcessing.Color.DesaturateCommand

Leadtools.ImageProcessing.Effects.EdgeDetectStatisticalCommand

Leadtools.ImageProcessing.Color.LightControlCommand

Leadtools.ImageProcessing.Effects.SmoothEdgesCommand

Leadtools.ImageProcessing.Color.LocalHistogramEqualizeCommand

Leadtools.ImageProcessing.Color.AddWeightedCommand

Leadtools.ImageProcessing.Color.ColorMergeCommand

Leadtools.ImageProcessing.Color.ColorSeparateCommand

Leadtools.ImageProcessing.Color.MultiplyCommand

Leadtools.ImageProcessing.Color.AutoColorLevelCommand

Leadtools.ImageProcessing.Color.ColorLevelCommand

CorrelationCommand Class

Leadtools.ImageProcessing.Color.GrayScaleToDuotoneCommand

Leadtools.ImageProcessing.Color.GrayScaleToMultitoneCommand

Leadtools.ImageProcessing.Effects.RegionHolesRemovalCommand

Leadtools.ImageProcessing.Color.SelectiveColorCommand

Leadtools.ImageProcessing.Effects.SkeletonCommand

Leadtools.ImageProcessing.Color.ChangeHueSaturationIntensityCommand

Leadtools.ImageProcessing.Color.ColorReplaceCommand

Leadtools.ImageProcessing.Color.ColorThresholdCommand

Leadtools.ImageProcessing.Color.MathematicalFunctionCommand

Leadtools.ImageProcessing.Color.SegmentCommand

Leadtools.ImageProcessing.Color.AdaptiveContrastCommand

Leadtools.ImageProcessing.Color.ApplyMathematicalLogicCommand

Leadtools.ImageProcessing.Color.ColorIntensityBalanceCommand

ColorizeGrayCommand Class

Leadtools.ImageProcessing.Color.ContrastBrightnessIntensityCommand

DigitalSubtractCommand Class

Leadtools.ImageProcessing.Color.DynamicBinaryCommand

Leadtools.ImageProcessing.Effects.EdgeDetectEffectCommand

Leadtools.ImageProcessing.SpecialEffects.FunctionalLightCommand

MultiscaleEnhancementCommand Class

SelectDataCommand Class

ShiftDataCommand Class

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

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