←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#
VB
Java
Objective-C
WinRT C#
C++
@interface LTAlignImagesCommand : LTRasterCommand
public class AlignImagesCommand extends RasterCommand
function Leadtools.ImageProcessing.Core.AlignImagesCommand()

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#
VB
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
 
    
Public Sub AlignImagesCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
   'Load an image 
   Dim ReferenceImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg")) 
 
   'Rotate an image to be registered 
   Dim TemplateImage As RasterImage = New RasterImage(ReferenceImage) 
   Dim command As RotateCommand = New RotateCommand(45 * 100, RotateCommandFlags.Bicubic, New RasterColor(0, 0, 0)) 
   command.Run(TemplateImage) 
 
   'Get feature points from the two images that are corresponding to each other. 
   Dim templatePoints() As LeadPoint = New LeadPoint(2) {} 
   Dim referencePoints() As LeadPoint = 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 
   Dim alignCommand As AlignImagesCommand = New AlignImagesCommand() 
 
   alignCommand.TemplateImage = TemplateImage 
   alignCommand.ReferenceImagePoints = referencePoints 
   alignCommand.TemplateImagePoints = templatePoints 
   alignCommand.RegistrationMethod = RegistrationOptions.Unknown 
 
   'Apply 
   alignCommand.Run(ReferenceImage) 
 
   ' Save the result image 
   codecs.Save(alignCommand.RegisteredImage, Path.Combine(LEAD_VARS.ImagesDir, "RegisteredImage.jpg"), RasterImageFormat.Bmp, 24) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
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:\Users\Public\Documents\LEADTOOLS Images"; 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.ImageProcessing.Core Assembly
Click or drag to resize