←Select platform

AutoPreprocess Method

Summary

Performs automatic image processing clean up on the image to enhance the quality of the page before beginning recognition.

Syntax
C#
VB
Objective-C
C++
Java
Sub AutoPreprocess( _ 
   ByVal command As OcrAutoPreprocessPageCommand, _ 
   ByVal callback As OcrProgressCallback _ 
)  
- (BOOL)autoPreprocess:(LTOcrAutoPreprocessPageCommand)command  
              progress:(nullable LTOcrProgressHandler)progressHandler  
                 error:(NSError **)error 
public void autoPreprocess(OcrAutoPreprocessPageCommand command, 
                           OcrProgressListener callback) 

Parameters

command
The preprocessing command to perform.

callback
Optional callback to show operation progress.

Remarks

Use this method to deskew, rotate or invert the image according to command. By performing auto pre-processing on a page, you can improve the image quality of draft mode faxes.

Use the OcrProgressCallback to show the operation progress or to abort it. For more information and an example, refer to OcrProgressCallback.

Call this method prior to calling Recognize.

This method will call GetDeskewAngle, GetRotateAngle and IsInverted to determine whether the page needs processing, if the page does, this method will internally deskews, rotates or inverts the image accordingly.

If the image is skewed, GetDeskewAngle will return the angle needed to deskew the image, if you call AutoPreprocess on the page, all subsequent calls to GetDeskewAngle will return 0 since the image is no longer skewed. Same with GetRotateAngle and IsInverted.

Use GetPreprocessValues to obtain the accumulative pre-processing values applied to this IOcrPage.

This method works on both the current and processing version of the image. For example, if you add a page that is skewed and call AutoPreprocess width OcrAutoPreprocessPageCommand.Deskew, then obtain either the current or processing images with GetRasterImage, you will get two raster image objects that are both rotated (deskewed).

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Forms.Common; 
using Leadtools.Document.Writer; 
using Leadtools.WinForms; 
using Leadtools.Drawing; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
 
public void AutoPreprocessExample() 
{ 
   string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif"); 
   string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Clean.pdf"); 
 
   // Create an instance of the engine 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD, false)) 
   { 
      // Start the engine using default parameters 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      // Create an OCR document 
      using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument()) 
      { 
         // Add this image to the document 
         IOcrPage ocrPage = ocrDocument.Pages.AddPage(tifFileName, null); 
 
         // Auto-preprocess it 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Deskew, null); 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Invert, null); 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Rotate, null); 
 
         // Recognize it and save it as PDF 
         ocrPage.Recognize(null); 
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, null); 
      } 
 
      // Shutdown the engine 
      // Note: calling Dispose will also automatically shutdown the engine if it has been started 
      ocrEngine.Shutdown(); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS 20\Bin\Common\OcrLEADRuntime"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Ocr 
Imports Leadtools.Forms 
Imports Leadtools.Document.Writer 
Imports Leadtools.WinForms 
Imports Leadtools.Drawing 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
 
Public Sub AutoPreprocessExample() 
   Dim tifFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif") 
   Dim pdfFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Clean.pdf") 
 
   ' Create an instance of the engine 
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD, False) 
      ' Start the engine using default parameters 
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrLEADRuntimeDir) 
 
      ' Create an OCR document 
      Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument() 
         ' Add this image to the document 
         Dim ocrPage As IOcrPage = ocrDocument.Pages.AddPage(tifFileName, Nothing) 
 
         ' Auto-preprocess it 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Deskew, Nothing) 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Invert, Nothing) 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Rotate, Nothing) 
 
         ' Recognize it and save it as PDF 
         ocrPage.Recognize(Nothing) 
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, Nothing) 
      End Using 
 
      ' Shutdown the engine 
      ' Note: calling Dispose will also automatically shutdown the engine if it has been started 
      ocrEngine.Shutdown() 
   End Using 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
   Public Const OcrLEADRuntimeDir As String = "C:\LEADTOOLS 20\Bin\Common\OcrLEADRuntime" 
End Class 

Requirements

Target Platforms

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

Leadtools.Ocr Assembly