←Select platform

GetLastStatistic Method

Summary
Gets the accuracy and timing data of the latest successful recognition process.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public OcrStatistic GetLastStatistic() 
@property (nonatomic, strong, readonly, nullable) LTOcrStatistic *lastStatistic; 
public OcrStatistic getLastStatistic() 
OcrStatistic GetLastStatistic();  
def GetLastStatistic(self): 

Return Value

An OcrStatistic object that contains accuracy and timing data of the latest successful recognition process.

Remarks

You can use this method after calling IOcrPage.AutoPreprocess, IOcrPage.AutoZone, IOcrPage.Recognize or IOcrDocument.Save to get the accuracy and timing data of the latest successful recognition process

If you use the IOcrPageCollection.Recognize method, the GetLastStatistic will return the statistic for the last page only.

Note: When using the LEADTOOLS OCR Module - LEAD Engine you can use this method ONLY after calling the IOcrPage.Recognize method.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Ocr; 
using Leadtools.Document.Writer; 
 
public void OcrStatisticExample() 
{ 
   // Create an instance of the engine 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      // Start the engine using default parameters 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"); 
      string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.pdf"); 
 
      // Create an OCR page 
      using (IOcrPage ocrPage = ocrEngine.CreatePage(ocrEngine.RasterCodecsInstance.Load(tifFileName, 1), OcrImageSharingMode.AutoDispose)) 
      { 
         // Process the page 
         ocrPage.AutoPreprocess(OcrAutoPreprocessPageCommand.Deskew, null); 
 
         // Recognize the page 
         // Note, Recognize can be called without calling AutoZone or manually adding zones. The engine will 
         // check and automatically auto-zones the page 
         ocrPage.Recognize(null); 
 
         // Show the statistic about the last recognize operation 
         OcrStatistic statistic = ocrEngine.GetLastStatistic(); 
         Console.WriteLine("Recognized characters: {0}", statistic.RecognizedCharacters); 
         Console.WriteLine("Recognized words: {0}", statistic.RecognizedWords); 
         Console.WriteLine("Rejected characters: {0}", statistic.RejectedCharacters); 
         Console.WriteLine("Corrected words: {0}", statistic.CorrectedWords); 
         Console.WriteLine("Recognition time: {0} ms", statistic.RecognitionTime); 
         Console.WriteLine("Reading time: {0} ms", statistic.ReadingTime); 
         Console.WriteLine("Image Preprocessing time: {0} ms", statistic.ImagePreprocessingTime); 
         Console.WriteLine("Decomposition time: {0} ms", statistic.DecompositionTime); 
         Console.WriteLine("Post processing time: {0} ms", statistic.ReadingTime - statistic.RecognitionTime); 
      } 
 
      // 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:\LEADTOOLS23\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime"; 
} 
 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.assertTrue; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.document.writer.*; 
import leadtools.ocr.*; 
 
 
public void IOcrStatisticExample() { 
   final String OCR_LEAD_RUNTIME_DIR = "C:\\LEADTOOLS23\\Bin\\Common\\OcrLEADRuntime"; 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   // Create an instance of the engine 
   OcrEngine ocrEngine = OcrEngineManager.createEngine(OcrEngineType.LEAD); 
 
   // Start the engine using default parameters 
   ocrEngine.startup(null, null, null, OCR_LEAD_RUNTIME_DIR); 
   assertTrue(ocrEngine.isStarted()); 
 
   String tifFileName = combine(LEAD_VARS_IMAGES_DIR, "Ocr1.tif"); 
 
   // Create an OCR page 
   OcrPage ocrPage = ocrEngine.createPage( 
         ocrEngine.getRasterCodecsInstance().load(tifFileName, 1), 
         OcrImageSharingMode.AUTO_DISPOSE); 
 
   // Process the page 
   ocrPage.autoPreprocess(OcrAutoPreprocessPageCommand.DESKEW, null); 
 
   // Recognize the page 
   // Note, Recognize can be called without calling AutoZone or manually adding 
   // zones. The engine will 
   // check and automatically auto-zones the page 
   ocrPage.recognize(null); 
 
   // Show the statistic about the last recognize operation 
   OcrStatistic statistic = ocrEngine.getLastStatistic(); 
   assertTrue("Statistics have been received", statistic != null); 
   System.out.printf("Recognized characters: %s%n", statistic.getRecognizedCharacters()); 
   System.out.printf("Recognized words: %s%n", statistic.getRecognizedWords()); 
   System.out.printf("Rejected characters: %s%n", statistic.getRejectedCharacters()); 
   System.out.printf("Corrected words: %s%n", statistic.getCorrectedWords()); 
   System.out.printf("Recognition time: %s ms%n", statistic.getRecognitionTime()); 
   System.out.printf("Reading time: %s ms%n", statistic.getReadingTime()); 
   System.out.printf("Image Preprocessing time: %s ms%n", statistic.getImagePreprocessingTime()); 
   System.out.printf("Decomposition time: %s ms%n", statistic.getDecompositionTime()); 
   System.out.printf("Post processing time: %s ms%n", statistic.getReadingTime() - statistic.getRecognitionTime()); 
 
   // Shutdown the engine 
   // Note: calling Dispose will also automatically shutdown the engine if it has 
   // been started 
   ocrEngine.shutdown(); 
} 
Requirements

Target Platforms

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

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