LEADTOOLS Image Processing (Leadtools.ImageProcessing.Core assembly)
LEAD Technologies, Inc

KaufmannRegionCommand Class

Example 





Members 
Sets a Kaufmann region based on the color value of the specified point in the enhanced image (KaufmannProcessedImage). This command is available in the Raster Pro and above toolkits. .NET support WinRT support
Object Model
KaufmannRegionCommand Class
Syntax
'Declaration
 
Public Class KaufmannRegionCommand 
   Inherits Leadtools.ImageProcessing.RasterCommand
   Implements Leadtools.ImageProcessing.IRasterCommand 
'Usage
 
Dim instance As KaufmannRegionCommand
public sealed class KaufmannRegionCommand : Leadtools.ImageProcessing.IRasterCommand  
function Leadtools.ImageProcessing.Core.KaufmannRegionCommand()
public ref class KaufmannRegionCommand : public Leadtools.ImageProcessing.RasterCommand, Leadtools.ImageProcessing.IRasterCommand  
Remarks
This class is used to calculate the Kaufmann ratio (size of the corpus callosum / size of the brain sphere). The corpus callosum is a white matter structure that consists of nerve fibers that connect the left and right hemispheres of the brain.
Prior to creating the Kaufmann region, this command performs noise reduction on an image using enhancement procedures such as the Gaussian blur. Then this command class (using a magic wand technique) creates a Kaufmann region that starts with the color value of the point specified in RegionStart and ends at the value specified in RegionThreshold. The region is placed in KaufmannProcessedImage. The KaufmannProcessedImage contains the data from Image, (enhanced using the internal enhancing procedures) and the resulting region. The Image itself is not changed. The area of the resulting region can be used to calculate the Kaufmann ratio.
To calculate the Kaufmann ratio do the following steps:
  1. Call the command to make a region around the corpus callosum, adjusting the following properties in order to make the region around the area you want, and then save the PixelsCount value:
    • CombineMode property - a Leadtools.RasterRegionCombineMode value that specifies how the area being added is to be combined.
    • KaufmannProcessedImage property - the Leadtools.RasterImage that contains the region.
    • MaximumInput property - an integer which specifies which values are to be considered to be highlights. This value is used internally to brighten the highlights to make region selection easier.
    • MinimumInput property - an integer which specifies which values are to be considered to be shadows. This value is used internally to darken the shadows to make region selection easier.
    • Radius property - the size of the neighborhood used in the internal blurring process.
    • RegionStart property - the starting point for the created region.
    • RegionThreshold property - the stopping point for the magic wand region expansion. If the difference between the color of the new pixel which is about to be included in the region and the pixel color which is pointed by Region exceeds the difference between the RegionThreshold and the pixel color which is pointed to by RegionStart, the pixel will not be included.
    • RemoveHoles property - value that specifies whether to remove all holes from the created region.
  2. Call the command a second time to make a region around the brain sphere after adjusting the properties appropriately, and save the PixelsCount value.
  3. Now calculate the ratio.
  4. This command does not support 32-bit grayscale images.
For more information on how to calculate the brain ratio refer to the example below.
This command supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
Example
 
Public Sub KaufmannRegionCommandExample()
   Dim codecs As New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True

   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm"))

   ' Prepare the command
   Dim startPoint As LeadPoint = New LeadPoint((leadImage.Width \ 2), (leadImage.Height \ 2))

   ' apply the command in order to get the pixels count of the first region.
   Dim KaufmannCommandInner As KaufmannRegionCommand = New KaufmannRegionCommand
   KaufmannCommandInner.CombineMode = RasterRegionCombineMode.Set
   KaufmannCommandInner.MaximumInput = 110
   KaufmannCommandInner.MinimumInput = 54
   KaufmannCommandInner.Radius = 21
   KaufmannCommandInner.RegionStart = startPoint
   KaufmannCommandInner.RegionThreshold = 13
   KaufmannCommandInner.RemoveHoles = True
   KaufmannCommandInner.Run(leadImage)

   Dim firstPixelCount As Integer = KaufmannCommandInner.PixelsCount

   ' apply the command once more.
   Dim KaufmannCommandOuter As KaufmannRegionCommand = New KaufmannRegionCommand(29, 51, 229, 207, startPoint, True, RasterRegionCombineMode.Set)
   KaufmannCommandOuter.Run(leadImage)

   Dim secondPixelCount As Integer = KaufmannCommandOuter.PixelsCount

   ' print the ratio between the first and the second region.
   Dim result As Double = (firstPixelCount * 1.0 / secondPixelCount)
   MessageBox.Show(result.ToString())

End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void KaufmannRegionCommandExample()
   {
      // Load an image
      RasterCodecs codecs = new RasterCodecs();
      codecs.ThrowExceptionsOnInvalidImages = true;

      RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image3.dcm"));

      // Prepare the command
      LeadPoint startPoint = new LeadPoint((image.Width / 2), (image.Height / 2));

      // apply the command in order to get the pixels count of the first region.
      KaufmannRegionCommand KaufmannCommandInner = new KaufmannRegionCommand();
      KaufmannCommandInner.CombineMode = RasterRegionCombineMode.Set;
      KaufmannCommandInner.MaximumInput = 110;
      KaufmannCommandInner.MinimumInput = 54;
      KaufmannCommandInner.Radius = 21;
      KaufmannCommandInner.RegionStart = startPoint;
      KaufmannCommandInner.RegionThreshold = 13;
      KaufmannCommandInner.RemoveHoles = true;
      KaufmannCommandInner.Run(image);

      int firstPixelCount = KaufmannCommandInner.PixelsCount;

      // apply the command once more.
      KaufmannRegionCommand KaufmannCommandOuter = new KaufmannRegionCommand(29, 51, 229, 207, startPoint, true, RasterRegionCombineMode.Set);
      KaufmannCommandOuter.Run(image);

      int secondPixelCount = KaufmannCommandOuter.PixelsCount;

      // print the ratio between the first and the second region.
      double result = (firstPixelCount * 1.0 / secondPixelCount);
      MessageBox.Show(result.ToString());

   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
function KaufmannRegionCommandExample()
{
   var codecs = new Leadtools.Codecs.RasterCodecs();
   codecs.throwExceptionsOnInvalidImages = true;

   // Load the image
   var srcFileName = "Assets\\image3.dcm";
   return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
      return codecs.loadAsync(Leadtools.LeadStreamFactory.create(loadFile));
   }).then(function (image) {
      // Prepare the command
      with (Leadtools.ImageProcessing.Core) {
         var startPoint = Leadtools.LeadPointHelper.create((image.width / 2), (image.height / 2));
         
         // apply the command in order to get the pixels count of the first region.
         var KaufmannCommandInner = new KaufmannRegionCommand();
         KaufmannCommandInner.combineMode = Leadtools.RasterRegionCombineMode.set;
         KaufmannCommandInner.maximumInput = 110;
         KaufmannCommandInner.minimumInput = 54;
         KaufmannCommandInner.radius = 21;
         KaufmannCommandInner.regionStart = startPoint;
         KaufmannCommandInner.regionThreshold = 13;
         KaufmannCommandInner.removeHoles = true;
         KaufmannCommandInner.run(image);
         
         var firstPixelCount = KaufmannCommandInner.pixelsCount;
         
         // apply the command once more.
         var KaufmannCommandOuter = new KaufmannRegionCommand(29, 51, 229, 207, startPoint, true, Leadtools.RasterRegionCombineMode.set);
         KaufmannCommandOuter.run(image);
         
         var secondPixelCount = KaufmannCommandOuter.pixelsCount;
         
         // print the ratio between the first and the second region.
         var result = (firstPixelCount * 1.0 / secondPixelCount);
         console.error(result.toString());
      }
   });
}
[TestMethod]
public async Task KaufmannRegionCommandExample()
{
   // Load an image
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   // Load the image
   string srcFileName = @"Assets\Image3.dcm";
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));

   // Prepare the command
   LeadPoint startPoint = LeadPointHelper.Create((image.Width / 2), (image.Height / 2));

   // apply the command in order to get the pixels count of the first region.
   KaufmannRegionCommand KaufmannCommandInner = new KaufmannRegionCommand();
   KaufmannCommandInner.CombineMode = RasterRegionCombineMode.Set;
   KaufmannCommandInner.MaximumInput = 110;
   KaufmannCommandInner.MinimumInput = 54;
   KaufmannCommandInner.Radius = 21;
   KaufmannCommandInner.RegionStart = startPoint;
   KaufmannCommandInner.RegionThreshold = 13;
   KaufmannCommandInner.RemoveHoles = true;
   KaufmannCommandInner.Run(image);

   int firstPixelCount = KaufmannCommandInner.PixelsCount;

   // apply the command once more.
   KaufmannRegionCommand KaufmannCommandOuter = new KaufmannRegionCommand(29, 51, 229, 207, startPoint, true, RasterRegionCombineMode.Set);
   KaufmannCommandOuter.Run(image);

   int secondPixelCount = KaufmannCommandOuter.PixelsCount;

   // print the ratio between the first and the second region.
   double result = (firstPixelCount * 1.0 / secondPixelCount);
   Debug.WriteLine(result.ToString());

}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

KaufmannRegionCommand Members
Leadtools.ImageProcessing.Core Namespace
Leadtools.ImageProcessing.Color.ChangeIntensityCommand
Leadtools.ImageProcessing.Color.GammaCorrectCommand
Leadtools.ImageProcessing.Color.ChangeContrastCommand
Leadtools.ImageProcessing.Color.StretchIntensityCommand
Leadtools.ImageProcessing.Color.RemapIntensityCommand
Leadtools.ImageProcessing.Color.ChangeHueCommand
Leadtools.ImageProcessing.Color.ChangeSaturationCommand
Leadtools.ImageProcessing.Color.HistogramEqualizeCommand
WindowLevelCommand Class
Leadtools.ImageProcessing.Color.HistogramContrastCommand
Leadtools.ImageProcessing.Color.ColorLevelCommand
Leadtools.ImageProcessing.Effects.GaussianCommand
Leadtools.ImageProcessing.Effects.RegionHolesRemovalCommand

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.