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";
}