Aligns two images (the reference and template images) based on the locations of the input points. The images are combined, creating the RegisteredImage.
public class AlignImagesCommand : RasterCommand
Public Class AlignImagesCommand
Inherits RasterCommand
@interface LTAlignImagesCommand : LTRasterCommand
public class AlignImagesCommand extends RasterCommand
public ref class AlignImagesCommand : public RasterCommand
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";
}
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
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