←Select platform

KeyStoneCommand Class

Performs inverse perspective transformation (keystoning) on an image.
public class KeyStoneCommand : RasterCommand 
Public Class KeyStoneCommand  
   Inherits RasterCommand 
@interface LTKeyStoneCommand : LTRasterCommand 
public class KeyStoneCommand extends RasterCommand 
public ref class KeyStoneCommand : public RasterCommand   
  • The KeyStoneCommand is useful for correcting the perspective of images captured by portable devices. Frequently, images are distorted because they are projected onto a surface at an angle. Vertical lines become slanted, etc.
  • The KeyStoneCommand maps a polygon to a rectangle. The PerspectiveCommand maps a rectangle to a polygon.
  • If the input list of points that represents the polygon has more than 4 points, an Invalid Parameters Exception will be thrown.
  • This function supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available in the Document/Medical Imaging toolkits.
  • This command supports signed/unsigned images.
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
public void KeyStoneCommandExample() 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   //Load an image 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")); 
   LeadPoint[] PolyPoints = new LeadPoint[4]; 
   //The four corners of the polygon 
   PolyPoints[0] = new LeadPoint(94, 94); 
   PolyPoints[1] = new LeadPoint(306, 43); 
   PolyPoints[2] = new LeadPoint(318, 237); 
   PolyPoints[3] = new LeadPoint(98, 237); 
   //Prepare the command 
   KeyStoneCommand command = new KeyStoneCommand(); 
   command.PolygonPoints = PolyPoints; 
   codecs.Save(command.TransformedImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), image.OriginalFormat, image.BitsPerPixel); 
static class LEAD_VARS 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
Public Sub KeyStoneCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
   'Load an image 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")) 
   'Dim PolyPoints As List(Of LeadPoint) = New List(Of LeadPoint)() 
   Dim PolyPoints() As LeadPoint = New LeadPoint(4) {} 
   'The four corners of the polygon 
   PolyPoints(0) = New LeadPoint(94, 94) 
   PolyPoints(1) = New LeadPoint(306, 43) 
   PolyPoints(2) = New LeadPoint(318, 237) 
   PolyPoints(3) = New LeadPoint(98, 237) 
   'Prepare the command 
   Dim command As KeyStoneCommand = New KeyStoneCommand() 
   command.PolygonPoints = PolyPoints 
   codecs.Save(command.TransformedImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), image.OriginalFormat, image.BitsPerPixel) 
End Sub 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS22\Resources\Images" 
End Class 

Target Platforms

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

Leadtools.ImageProcessing.Core Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.