←Select platform

RegistrationOptions Enumeration

Summary
Represents the type of transformation to be performed during registration.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public enum RegistrationOptions   
typedef NS_OPTIONS(NSUInteger, LTRegistrationOptions) 
public final class RegistrationOptions 
    extends java.lang.Enum<RegistrationOptions> 
public enum class RegistrationOptions   
class RegistrationOptions(Enum): 
   Unknown = 0 
   XY = 1 
   RSXY = 2 
   Affine6 = 3 
   Perspective = 4 
Members
ValueMemberDescription
0Unknown Unknown transformation type. The transformation algorithm will be selected automatically.
1XY ( 0x00000001)Perform XY translation using one pair of corresponding points during registration.
2RSXY Perform rotational, scaling and XY transformations using two pairs of corresponding points during registration.
3Affine6 Perform rotational, scaling, shearing, and XY transformations using three pairs of corresponding points during registration.
4Perspective Perform perspective transformation using four pairs of corresponding points during registration.
Example
C#
Java
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:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.RotateCommand; 
import leadtools.imageprocessing.RotateCommandFlags; 
import leadtools.imageprocessing.core.*; 
 
 
public void alignImagesCommandExample() { 
 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.setThrowExceptionsOnInvalidImages(true); 
 
   // Load an image 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterImage referenceImage = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "cannon.jpg")); 
 
   // Rotate the image to be registered 
   RasterImage templateImage = new RasterImage(referenceImage); 
   RotateCommand command = new RotateCommand(45 * 100, RotateCommandFlags.BICUBIC.getValue(), 
         new RasterColor(0, 0, 0)); 
   command.run(templateImage); 
 
   // Get feature points from the two images that correspond to each other 
   ArrayList<LeadPoint> templatePoints = new ArrayList<LeadPoint>(); 
   ArrayList<LeadPoint> referencePoints = new ArrayList<LeadPoint>(); 
 
   referencePoints.add(new LeadPoint(173, 102)); 
   referencePoints.add(new LeadPoint(216, 259)); 
 
   templatePoints.add(new LeadPoint(239, 66)); 
   templatePoints.add(new LeadPoint(158, 207)); 
 
   // Prepare the command 
   AlignImagesCommand alignCommand = new AlignImagesCommand(); 
 
   alignCommand.setTemplateImage(templateImage); 
   alignCommand.setReferenceImagePoints(referencePoints); 
   alignCommand.setTemplateImagePoints(templatePoints); 
   alignCommand.setRegistrationMethod(RegistrationOptions.UNKNOWN); 
   assertTrue( 
         alignCommand.getReferenceImagePoints() == referencePoints 
               && alignCommand.getTemplateImagePoints() == templatePoints 
               && alignCommand.getRegistrationMethod() == RegistrationOptions.UNKNOWN); 
 
   // Apply 
   alignCommand.run(referenceImage); 
 
   // Save the resulting image 
   codecs.save(alignCommand.getRegisteredImage(), combine(LEAD_VARS_IMAGES_DIR, "RegisteredImage.bmp"), 
         RasterImageFormat.BMP, 24); 
 
   assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "RegisteredImage.bmp")).exists()); 
   System.out.println("Command run and image saved to " + combine(LEAD_VARS_IMAGES_DIR, "RegisteredImage.bmp")); 
 
} 
Requirements

Target Platforms

Help Version 23.0.2024.3.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 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.