←Select platform

ManualPerspectiveDeskewCommand Class

Corrects the view perspective.
public class ManualPerspectiveDeskewCommand : RasterCommand 
@interface LTManualPerspectiveDeskewCommand : LTRasterCommand 
public class ManualPerspectiveDeskewCommand 
    extends RasterCommand 
public ref class ManualPerspectiveDeskewCommand : public RasterCommand   
class ManualPerspectiveDeskewCommand(RasterCommand): 
  • The ManualPerspectiveDeskewCommand can change the specified image. To keep the original image unchanged, use this function on a copy.
  • Typically, this command is used as a step in preprocessing images from digital cameras. It changes the image based on a view perspective equation, taking the depth of the objects into account as well as their relative dimensions.
  • It is best to choose input points that are far apart from each other.
  • Use the ManualPerspectiveDeskewCommand, PerspectiveDeskewCommand or KeyStoneCommand if there is a planar deformation along all three axes. Use the UnWarpCommand if there is a cylindrical deformation. Use the DeskewCommand if there is deformation along the x-axis and y-axes.
  • Use the Run method to fix the distorted image. Obtain the deskewed image from the OutputImage property.
  • This function supports 24-bit and 36-bit color images and 8-bit and 16-bit grayscale images. Support for 16-bit grayscale is available in the Document/Medical Imaging toolkits. This command supports signed/unsigned images.
  • For more information, refer to Deskewing.
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
public void ManualPerspectiveDeskewCommandExample() 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   //Load an image 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "PerspectiveDeskew.jpg")); 
   LeadPoint[] PolyPoints = new LeadPoint[4]; 
   LeadPoint[] MappingPoints = new LeadPoint[4]; 
   //The four corners of the polygon 
   PolyPoints[0] = new LeadPoint(131, 193); 
   PolyPoints[1] = new LeadPoint(456, 151); 
   PolyPoints[2] = new LeadPoint(535, 282); 
   PolyPoints[3] = new LeadPoint(124, 354); 
   //Prepare the command 
   ManualPerspectiveDeskewCommand command = new ManualPerspectiveDeskewCommand(); 
   command.InPoints = PolyPoints; 
   MappingPoints[0] = new LeadPoint(0, 0); 
   MappingPoints[1] = new LeadPoint(610, 0); 
   MappingPoints[2] = new LeadPoint(610, 421); 
   MappingPoints[3] = new LeadPoint(0, 421); 
   command.MappingPoints = MappingPoints; 
   codecs.Save(command.OutputImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), image.OriginalFormat, image.BitsPerPixel); 
static class LEAD_VARS 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
import java.io.File; 
import java.io.IOException; 
import org.junit.*; 
import org.junit.Test; 
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.core.*; 
public void manualPerspectiveDeskewCommandExample() { 
    final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
    RasterCodecs codecs = new RasterCodecs(); 
    // Load an image 
    RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "PerspectiveDeskew.jpg")); 
    LeadPoint[] polyPoints = new LeadPoint[4]; 
    LeadPoint[] mappingPoints = new LeadPoint[4]; 
    // The four corners of the polygon 
    polyPoints[0] = new LeadPoint(131, 193); 
    polyPoints[1] = new LeadPoint(456, 151); 
    polyPoints[2] = new LeadPoint(535, 282); 
    polyPoints[3] = new LeadPoint(124, 354); 
    // Prepare the command 
    ManualPerspectiveDeskewCommand command = new ManualPerspectiveDeskewCommand(); 
    mappingPoints[0] = new LeadPoint(0, 0); 
    mappingPoints[1] = new LeadPoint(610, 0); 
    mappingPoints[2] = new LeadPoint(610, 421); 
    mappingPoints[3] = new LeadPoint(0, 421); 
    // Apply 
    codecs.save(command.getOutputImage(), combine(LEAD_VARS_IMAGES_DIR, "Result.jpg"), image.getOriginalFormat(), 
    System.out.println("Command run and image saved to: " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
    assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")).exists()); 

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.