←Select platform

AlignImagesCommand Class

Summary
Aligns two images (the reference and template images) based on the locations of the input points. The images are combined, creating the RegisteredImage.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class AlignImagesCommand : RasterCommand 
@interface LTAlignImagesCommand : LTRasterCommand 
public class AlignImagesCommand 
    extends RasterCommand 
public ref class AlignImagesCommand : public RasterCommand   
class AlignImagesCommand(RasterCommand): 
Remarks
  • The two images should have the same depth (i.e. Bits Per Pixel); otherwise, this class will throw an Invalid Parameter exception.
  • It is best to choose points that are far apart from each other.
  • The transformation performed depends upon the number of pairs of corresponding points given. As many as four pairs can be given.
  • Set the reference image using the Run method and set the template image using the TemplateImage property.
  • Set the template image before calling the Run method; otherwise, an Invalid Parameter exception will be thrown.
  • This function supports 12-bit and 16-bit grayscale and 48-bit and 64-bit color images. Support for 12-bit and 16-bit grayscale and 48-bit and 64-bit color images is available only in the Document and Medical Imaging toolkits.
  • This command supports signed/unsigned images.
Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
 
public void AlignImagesCommandExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   //Load an image 
   RasterImage ReferenceImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg")); 
 
   //Rotate the image to be registered 
   RasterImage TemplateImage = new RasterImage(ReferenceImage); 
   RotateCommand command = new RotateCommand(45 * 100, RotateCommandFlags.Bicubic, new RasterColor(0, 0, 0)); 
   command.Run(TemplateImage); 
 
   //Get feature points from the two images that correspond to each other. 
   LeadPoint[] templatePoints = new LeadPoint[2]; 
   LeadPoint[] referencePoints = new LeadPoint[2]; 
 
   referencePoints[0] = new LeadPoint(173, 102); 
   referencePoints[1] = new LeadPoint(216, 259); 
 
   templatePoints[0] = new LeadPoint(239, 66); 
   templatePoints[1] = new LeadPoint(158, 207); 
 
   //Prepare the command 
   AlignImagesCommand alignCommand = new AlignImagesCommand(); 
 
   alignCommand.TemplateImage = TemplateImage; 
   alignCommand.ReferenceImagePoints = referencePoints; 
   alignCommand.TemplateImagePoints = templatePoints; 
   alignCommand.RegistrationMethod = RegistrationOptions.Unknown; 
 
   //Apply 
   alignCommand.Run(ReferenceImage); 
 
   // Save the resulting image 
   codecs.Save(alignCommand.RegisteredImage, Path.Combine(LEAD_VARS.ImagesDir, "RegisteredImage.bmp"), RasterImageFormat.Bmp, 24); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.11.1
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.