←Select platform

ManualPerspectiveDeskewCommand Class

Summary

Corrects the view perspective.

Syntax
C#
VB
Objective-C
C++
Java
public class ManualPerspectiveDeskewCommand : RasterCommand 
Public Class ManualPerspectiveDeskewCommand  
   Inherits RasterCommand 
@interface LTManualPerspectiveDeskewCommand : LTRasterCommand 
public class ManualPerspectiveDeskewCommand extends RasterCommand 
public ref class ManualPerspectiveDeskewCommand : public RasterCommand   

Remarks
  • 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.

Example
C#
VB
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; 
 
   //Apply  
   command.Run(image); 
 
   codecs.Save(command.OutputImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), image.OriginalFormat, image.BitsPerPixel); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
 
Public Sub ManualPerspectiveDeskewCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   'Load an image 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "PerspectiveDeskew.jpg")) 
 
   'Dim PolyPoints As List(Of LeadPoint) = New List(Of LeadPoint)() 
   Dim PolyPoints() As LeadPoint = New LeadPoint(4) {} 
   Dim MappingPoints() As LeadPoint = 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 
   Dim command As ManualPerspectiveDeskewCommand = 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 
 
 
   'Apply  
   command.Run(image) 
 
   codecs.Save(command.OutputImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), image.OriginalFormat, image.BitsPerPixel) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly