public ApplyTransformationParametersCommand() Public Function New() - (instancetype)init public ApplyTransformationParametersCommand() public:ApplyTransformationParametersCommand();
This example computes the translation parameters. The example makes the assumption that you have saved the position of the registration marks of the reference image in a file. Modify this example and replace the manual assignment of the rmData with your own code to load the reference registration mark data before testing this example.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing.Core;public void ApplyTransformationParametersConstructorExample(){// Load an imageRasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "RGSRef.cmp"));// Prepare the commandRasterImage tempImage = image;try{tempImage = image.Clone();if (tempImage.HasRegion)tempImage.MakeRegionEmpty();if (image.HasRegion)image.MakeRegionEmpty();SearchRegistrationMarksCommandData[] rmData = new SearchRegistrationMarksCommandData[3];// Mark1rmData[0] = new SearchRegistrationMarksCommandData();rmData[0].Rectangle = new LeadRect(680, 20, 941 - 680, 218 - 20);rmData[0].MarkDetectedPoints = new LeadPoint[1];rmData[0].Width = 31;rmData[0].Height = 29;rmData[0].Type = RegistrationMarkCommandType.TShape;rmData[0].MinimumScale = 90;rmData[0].MaximumScale = 110;rmData[0].SearchMarkCount = 1;// Mark2rmData[1] = new SearchRegistrationMarksCommandData();rmData[1].Rectangle = new LeadRect(665, 790, 899 - 665, 961 - 790);rmData[1].MarkDetectedPoints = new LeadPoint[1];rmData[1].Width = 31;rmData[1].Height = 29;rmData[1].Type = RegistrationMarkCommandType.TShape;rmData[1].MinimumScale = 90;rmData[1].MaximumScale = 110;rmData[1].SearchMarkCount = 1;// Mark3rmData[2] = new SearchRegistrationMarksCommandData(31, 29, 90, 110, new LeadRect(7, 1073, 298 - 7, 1246 - 1073), 1, new LeadPoint[1], RegistrationMarkCommandType.TShape);SearchRegistrationMarksCommand command1 = new SearchRegistrationMarksCommand();command1.SearchMarks = rmData;command1.Run(image);if ((rmData[2].MarkDetectedCount != 1) || (rmData[1].MarkDetectedCount != 1) || (rmData[0].MarkDetectedCount != 1))return;LeadPoint[] original ={new LeadPoint(81400, 11300),new LeadPoint(78600, 87400),new LeadPoint(14300, 115400)};LeadPoint[] detected ={rmData[0].MarkDetectedPoints[0],rmData[1].MarkDetectedPoints[0],rmData[2].MarkDetectedPoints[0]};// Find center of mass for detected registration marks in the transformed imageLeadPoint[] transformed = CoreUtilities.GetRegistrationMarksCenterMass(image, detected);// Find transformation parametersTransformationParameters parameters = CoreUtilities.GetTransformationParameters(image, original, transformed);// Apply transformation parameters to correct the imageApplyTransformationParametersCommand applyCommand = new ApplyTransformationParametersCommand();applyCommand.XTranslation = parameters.XTranslation;applyCommand.YTranslation = parameters.YTranslation;applyCommand.Angle = parameters.Angle;applyCommand.XScale = parameters.XScale;applyCommand.YScale = parameters.YScale;applyCommand.Flags = ApplyTransformationParametersCommandFlags.Normal;applyCommand.Run(tempImage);}catch (Exception exception){MessageBox.Show(exception.Message);}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing.CorePublic Sub ApplyTransformationParametersConstructorExample()Dim codecs As New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = TrueDim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "RGSRef.cmp"))' Prepare the commandDim tempImage As RasterImagetempImage = leadImageTrytempImage = leadImage.Clone()If (tempImage.HasRegion) ThentempImage.MakeRegionEmpty()End IfIf (leadImage.HasRegion) ThenleadImage.MakeRegionEmpty()End IfDim rmData() As SearchRegistrationMarksCommandDataReDim rmData(2)Dim points() As LeadPointReDim points(0)' Mark1rmData(0) = New SearchRegistrationMarksCommandDatarmData(0).Rectangle = New LeadRect(680, 20, 941 - 680, 218 - 20)rmData(0).MarkDetectedPoints = pointsrmData(0).Width = 31rmData(0).Height = 29rmData(0).Type = RegistrationMarkCommandType.TShapermData(0).MinimumScale = 90rmData(0).MaximumScale = 110rmData(0).SearchMarkCount = 1' Mark2rmData(1) = New SearchRegistrationMarksCommandDatarmData(1).Rectangle = New LeadRect(665, 790, 899 - 665, 961 - 790)rmData(1).MarkDetectedPoints = pointsrmData(1).Width = 31rmData(1).Height = 29rmData(1).Type = RegistrationMarkCommandType.TShapermData(1).MinimumScale = 90rmData(1).MaximumScale = 110rmData(1).SearchMarkCount = 1' Mark3rmData(2) = New SearchRegistrationMarksCommandData(31, 29, 90, 110, New LeadRect(7, 1073, 298 - 7, 1246 - 1073), 1, points, RegistrationMarkCommandType.TShape)Dim command1 As SearchRegistrationMarksCommandcommand1 = New SearchRegistrationMarksCommandcommand1.SearchMarks = rmDatacommand1.Run(leadImage)If ((rmData(2).MarkDetectedCount <> 1) OrElse (rmData(1).MarkDetectedCount <> 1) OrElse (rmData(0).MarkDetectedCount <> 1)) ThenReturnEnd IfDim original() As LeadPointReDim original(2)original(0) = New LeadPoint(81400, 11300)original(1) = New LeadPoint(78600, 87400)original(2) = New LeadPoint(14300, 115400)Dim detected() As LeadPointReDim detected(2)detected(0) = rmData(0).MarkDetectedPoints(0)detected(1) = rmData(1).MarkDetectedPoints(0)detected(2) = rmData(2).MarkDetectedPoints(0)' Find center of mass for detected registration marks in the transformed imageDim transformed() As LeadPointtransformed = CoreUtilities.GetRegistrationMarksCenterMass(leadImage, detected)' Find transformation parametersDim parameters As TransformationParametersparameters = CoreUtilities.GetTransformationParameters(leadImage, original, transformed)' Apply transformatin parameters to correct the imageDim applyCommand As ApplyTransformationParametersCommandapplyCommand = New ApplyTransformationParametersCommandapplyCommand.XTranslation = parameters.XTranslationapplyCommand.YTranslation = parameters.YTranslationapplyCommand.Angle = parameters.AngleapplyCommand.XScale = parameters.XScaleapplyCommand.YScale = parameters.YScaleapplyCommand.Flags = ApplyTransformationParametersCommandFlags.NormalapplyCommand.Run(tempImage)Catch e As ExceptionMessageBox.Show(e.Message)End TryEnd SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"End Class
ApplyTransformationParametersCommand Class
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
