Sets the ruler calibration scale.
public void Calibrate(LeadLengthD sourceLength,AnnUnit sourceUnit,LeadLengthD destinationLength,AnnUnit destinationUnit)
Public Sub Calibrate( _ByVal sourceLength As LeadLengthD, _ByVal sourceUnit As AnnUnit, _ByVal destinationLength As LeadLengthD, _ByVal destinationUnit As AnnUnit _)
-(void) calibrateSourceLength:(double) srcLensourceUnit:(LTAnnUnit) srcUnitdestinationLength:(double) targetLendestinationUnit:(LTAnnUnit) targetUnit;
public void calibrate(LeadLengthD sourceLength,AnnUnit sourceUnit,LeadLengthD destinationLength,AnnUnit destinationUnit)
public:void Calibrate(LeadLengthD^ sourceLength,AnnUnit^ sourceUnit,LeadLengthD^ destinationLength,AnnUnit^ destinationUnit)
sourceLength
Known source length value
sourceUnit
Units of sourceLength
destinationLength
What the destination length must be
destinationUnit
Units of destinationUnit
This method will use the parameters to calculate a new value for CalibrationScale. This value is used afterwards by all the existing ruler and new ruler objects created in this container.
The value of destinationUnit is set into CalibrationUnit and will be used as the default unit for all new ruler objects created in this container after this method has been called.
Calibrating a ruler means assigning a specific length to it. For example, on a digital X-ray of a hand, you may draw an annotation ruler object along one of the fingers. You know that this distance is supposed to be exactly 6.5 cm. Using the new calibration functionality you can calibrate this ruler, all existing rulers, and all newly created rulers so that they would precisely measure this distance to be 6.5 cm. This is accomplished by first drawing a ruler on the container till it matches exactly the length of the finger - ignoring the values shown - then using Calibrate as shown in the example.
Use AnnPolyRulerObject.Calibrate to set individual calibration values for a single ruler.
This example will draw a ruler with a length that is assumed is 6.5cm, it then uses Calibrate to set the mapper calibration scale.
using LeadtoolsExamples.Common;using Leadtools.Annotations.Automation;using Leadtools.Annotations.Engine;using Leadtools.Codecs;public void AnnContainerMapper_Calibrate(){// Add a ruler with a length of 1 inch to the containerAnnContainer container = new AnnContainer();double inch = 720;AnnPolyRulerObject rulerObj = new AnnPolyRulerObject();rulerObj.Points.Add(LeadPointD.Create(1 * inch, 1 * inch));rulerObj.Points.Add(LeadPointD.Create(2 * inch, 1 * inch));rulerObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthD.Create(1));rulerObj.ShowGauge = true;rulerObj.ShowTickMarks = true;rulerObj.MeasurementUnit = AnnUnit.Inch;container.Children.Add(rulerObj);// Show the rulerDebug.WriteLine("Ruler to calibrate, length is 1 inch");// Get the length of the rulerLeadPointD point1 = rulerObj.Points[0];LeadPointD point2 = rulerObj.Points[1];double length = Math.Sqrt(Math.Pow(Math.Abs(point2.X - point1.X), 2) + Math.Pow(Math.Abs(point2.Y - point1.Y), 2));// Calibrate the container mappercontainer.Mapper.Calibrate(LeadLengthD.Create(length), // Source lengthAnnUnit.Unit, // Source unit (container units)LeadLengthD.Create(6.5), // Destination lengthAnnUnit.Centimeter); // Destination unit// Use the Centimeters as the measurement unit in the rulerrulerObj.MeasurementUnit = AnnUnit.Centimeter;// Now rulerObj should show 6.5 Centimeter as its lengthDebug.WriteLine("Calibrated, length is 6.5 cm");}
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
