Leadtools.ImageProcessing.Core Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.10
ApplyTransformationParametersCommand Constructor
See Also  Example
Leadtools.ImageProcessing.Core Namespace > ApplyTransformationParametersCommand Class : ApplyTransformationParametersCommand Constructor




Initializes a new ApplyTransformationParametersCommand class object with default parameters.

Overload List

Example

Visual BasicCopy Code
ImageProcessing.Core.ApplyTransformationParametersCommand.ApplyTransformationParametersConstructor
   Public Sub ApplyTransformationParametersConstructorExample()
      RasterCodecs.Startup()
      Dim codecs As New RasterCodecs()
      codecs.ThrowExceptionsOnInvalidImages = True

      Dim leadImage As RasterImage = codecs.Load("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg")

      ' Prepare the command
      Dim tempImage As RasterImage
      tempImage = leadImage

      Try
         tempImage = leadImage.Clone()
         If (tempImage.HasRegion) Then
            tempImage.MakeRegionEmpty()
         End If
         If (leadImage.HasRegion) Then
            leadImage.MakeRegionEmpty()
         End If

         Dim rmData() As SearchRegistrationMarksCommandData
         ReDim rmData(2)

         Dim points() As Point
         ReDim points(0)

         ' Mark1
         rmData(0) = New SearchRegistrationMarksCommandData
         rmData(0).Rectangle = New Rectangle(680, 20, 941 - 680, 218 - 20)
         rmData(0).MarkDetectedPoints = points
         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

         ' Mark2
         rmData(1) = New SearchRegistrationMarksCommandData
         rmData(1).Rectangle = New Rectangle(665, 790, 899 - 665, 961 - 790)
         rmData(1).MarkDetectedPoints = points
         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

         ' Mark3
         rmData(2) = New SearchRegistrationMarksCommandData(31, 29, 90, 110, New Rectangle(7, 1073, 298 - 7, 1246 - 1073), 1, points, RegistrationMarkCommandType.TShape)

         Dim command1 As SearchRegistrationMarksCommand
         command1 = New SearchRegistrationMarksCommand
         command1.SearchMarks = rmData
         command1.Run(leadImage)

         If ((rmData(2).MarkDetectedCount <> 1) OrElse (rmData(1).MarkDetectedCount <> 1) OrElse (rmData(0).MarkDetectedCount <> 1)) Then
            Return
         End If

         Dim original() As Point
         ReDim original(2)
         original(0) = New Point(81400, 11300)
         original(1) = New Point(78600, 87400)
         original(2) = New Point(14300, 115400)

         Dim detected() As Point
         ReDim 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 image
         Dim transformed() As Point
         transformed = CoreUtilities.GetRegistrationMarksCenterMass(leadImage, detected)

         ' Find transformation parameters
         Dim parameters As TransformationParameters
         parameters = CoreUtilities.GetTransformationParameters(leadImage, original, transformed)

         ' Apply transformatin parameters to correct the image
         Dim applyCommand As ApplyTransformationParametersCommand
         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 e As Exception
         MessageBox.Show(e.Message)
      End Try

      RasterCodecs.Shutdown()
   End Sub
C#Copy Code
ImageProcessing.Core.ApplyTransformationParametersCommand.ApplyTransformationParametersConstructor 
      public void ApplyTransformationParametersConstructorExample() 
      { 
         // Load an image 
         RasterCodecs.Startup(); 
         RasterCodecs codecs = new RasterCodecs(); 
         codecs.ThrowExceptionsOnInvalidImages = true; 
 
         RasterImage image = codecs.Load(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg"); 
 
         // Prepare the command 
         RasterImage tempImage = image; 
         try 
         { 
            tempImage = image.Clone(); 
            if (tempImage.HasRegion) 
               tempImage.MakeRegionEmpty(); 
            if (image.HasRegion) 
               image.MakeRegionEmpty(); 
            SearchRegistrationMarksCommandData[] rmData = new SearchRegistrationMarksCommandData[3]; 
 
            // Mark1 
            rmData[0] = new SearchRegistrationMarksCommandData(); 
            rmData[0].Rectangle = new Rectangle (680, 20, 941 - 680, 218 - 20); 
            rmData[0].MarkDetectedPoints = new Point[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; 
 
            // Mark2 
            rmData[1] = new SearchRegistrationMarksCommandData(); 
            rmData[1].Rectangle = new Rectangle(665,790,899-665,961-790); 
            rmData[1].MarkDetectedPoints = new Point[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; 
 
            // Mark3 
            rmData[2] = new SearchRegistrationMarksCommandData(31, 29, 90, 110, new Rectangle(7,1073,298-7,1246-1073), 1, new Point[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; 
 
            Point[] original = 
               { 
                  new Point(81400, 11300), 
                  new Point(78600, 87400), 
                  new Point(14300, 115400) 
               }; 
 
            Point[] detected = 
               { 
                  rmData[0].MarkDetectedPoints[0], 
                  rmData[1].MarkDetectedPoints[0], 
                  rmData[2].MarkDetectedPoints[0] 
               }; 
 
            // Find center of mass for detected registration marks in the transformed image 
            Point[] transformed = CoreUtilities.GetRegistrationMarksCenterMass(image, detected); 
            // Find transformation parameters 
            TransformationParameters parameters = CoreUtilities.GetTransformationParameters(image, original, transformed); 
            // Apply transformatin parameters to correct the image 
            ApplyTransformationParametersCommand 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); 
         } 
 
         RasterCodecs.Shutdown(); 
      }

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also