Returns a DicomAutoScaleData object that specifies autoscale information about the DICOM pixel data.
public DicomAutoScaleData GetAutoScaleData(
DicomAutoScaleDataFlags flags
)
Public Function GetAutoScaleData(
ByVal flags As DicomAutoScaleDataFlags
) As DicomAutoScaleData
public:
DicomAutoScaleData^ GetAutoScaleData(
DicomAutoScaleDataFlags^ flags
)
flags
Indicates the type of autoscale information that is returned.
A DicomAutoScaleData object that specifies autoscale information about the DICOM pixel data.
The DicomAutoScaleDataFlags passed to this function determines the contents of the DicomAutoScaleData object that is returned.
If flags is DicomAutoScaleDataFlags.AutoScaleSlopeIntercept , then the returned DicomAutoScaleData object specifies if the DICOM pixel data has been autoscaled, and if so, the autoscale slope and autoscale intercept. Note that this is equivalent to calling GetAutoScaleData with no arguments.
If flags is DicomAutoScaleDataFlags.InverseModalityLut , then the returned DicomAutoScaleData object defines a linear transformation that is the inverse of the linear transformation specified in the DicomDataSet. In other words, with the slope (m) being specificed by the DICOM tag (0028,1053) Rescale Slope , and the intercept (b) being specified by the DICOM tag (0028,1052) Rescale Intercept , then the linear transformation specified in the DicomDataSet is y = mx + b . Passing the DicomAutoScaleDataFlags.InverseModalityLut flag means that the returned linear transformation is x = (1/m)y - (b/m). So DicomAutoScaleData.AutoScaleSlope will be (1/m) and DicomAutoScaleData.AutoScaleIntercept will be -(b/m) .
This example calls the different versions of GetAutoScaleData, and displays the results.
using Leadtools;
using Leadtools.Dicom;
///
public void Test_DicomDataSet_GetAutoScaleData()
{
DicomEngine.Startup();
string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image3.dcm");
using (DicomDataSet ds = new DicomDataSet())
{
ds.Load(dicomFileName, DicomDataSetLoadFlags.None);
DicomElement element = ds.FindFirstElement(null, DicomTag.PixelData, true);
// Get the image and apply autoscaling
ds.GetImage(element, 0, 0, RasterByteOrder.Gray, DicomGetImageFlags.AutoScaleModalityLut | DicomGetImageFlags.AutoScaleVoiLut | DicomGetImageFlags.AutoApplyModalityLut | DicomGetImageFlags.AutoApplyVoiLut);
// 1. Use the overload that takes not arguments
DicomAutoScaleData data = ds.GetAutoScaleData();
DumpAutoScaleData("GetAutoScaleData()", data);
// 2. Use the overload that takes arguments, and pass 'DicomAutoScaleDataFlags.AutoScaleSlopeIntercept'
// Note that this gives the same result as (1)
data = ds.GetAutoScaleData(DicomAutoScaleDataFlags.AutoScaleSlopeIntercept);
DumpAutoScaleData("GetAutoScaleData(DicomAutoScaleDataFlags.AutoScaleSlopeIntercept)", data);
// 3. Use the overload that takes arguments, and pass 'DicomAutoScaleDataFlags.InverseModalityLut'
data = ds.GetAutoScaleData(DicomAutoScaleDataFlags.InverseModalityLut);
DumpAutoScaleData("GetAutoScaleData(DicomAutoScaleDataFlags.InverseModalityLut)", data);
}
DicomEngine.Shutdown();
}
void DumpAutoScaleData(string title, DicomAutoScaleData data)
{
string message = string.Format("IsAutoScaled: {0}\nAutoScaleSlope: {1}\nAutoScaleIntercept: {2}",
data.IsAutoScaled,
data.AutoScaleSlope,
data.AutoScaleIntercept);
Console.WriteLine($"{title}: {message}");
}
///
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";
}
GetAutoScaleData(DicomAutoScaleDataFlags)
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document