LEADTOOLS OCR (Leadtools.Forms.Ocr assembly)
LEAD Technologies, Inc

LoadZones(String) Method

Example 





The name of the file containing the zones to load.
Load zones from a multi-page zones disk file. .NET support
Syntax
void LoadZones( 
   string fileName
)
'Declaration
 
Overloads Sub LoadZones( _
   ByVal fileName As String _
) 
'Usage
 
Dim instance As IOcrDocument
Dim fileName As String
 
instance.LoadZones(fileName)
void LoadZones( 
   string fileName
)
function Leadtools.Forms.Ocr.IOcrDocument.LoadZones(String)( 
   fileName 
)
void LoadZones( 
   String^ fileName
) 

Parameters

fileName
The name of the file containing the zones to load.
Remarks

To save and load the zones of OCR pages, you can use one of these methods:

Note on loading zones from a multi-page zone file: If the file does not contain zones data with the correct page number, the engine will not load any zones for this page. After the method returns, any OCR page that did not have zones data will contain zero zones. (the IOcrPage.Zones property conatins 0 items). You can then use IOcrPage.AutoZone if required to re-zone this page.

Use this method to load the zones previously saved into a multi-page zones disk file with the IOcrDocument.SaveZones(fileName) method.

The zones of this page will first be cleared prior to loading the new items.

After this method finishes, you can access the loaded zones in the IOcrPage.Zones property.

To load and save the zones to a .NET stream, use IOcrDocument.SaveZones(stream), IOcrDocument.LoadZones(stream) and IOcrPage.LoadZones(stream, pageNumber).

Saving zones to an external file or a stream could be useful when you are processing forms. For example, you can load one of the forms and automatically find the zones inside it using AutoZone, if the automatic zone detection was not 100 percent satisfactory, you can update the zones in the IOcrPage.Zones collection manually and then save the result with IOcrDocument.SaveZones(fileName). Once the zones are saved. You can now process all similar forms in the following manner:

Example
Copy CodeCopy Code  
Private Shared Sub LoadSaveZonesExample()
      Dim engineType As OcrEngineType = OcrEngineType.Professional
      Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(engineType, False)
         ocrEngine.Startup(Nothing, Nothing, Nothing, Nothing)
         Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument()
            ' Add 2 pages
            ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), Nothing)
            ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"), Nothing)

            ' Auto-zone all the pages
            ocrDocument.Pages.AutoZone(Nothing)
            Console.WriteLine("Number of zones after auto-zone:")
            For i As Integer = 0 To ocrDocument.Pages.Count - 1
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count)
            Next

            ' Save the zones to a disk file
            Dim zonesFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "LoadSaveZonesExample.ozf")
            ocrDocument.SaveZones(zonesFileName)

            ' Clear the zones
            For i As Integer = 0 To ocrDocument.Pages.Count - 1
               ocrDocument.Pages(i).Zones.Clear()
            Next

            ' Show the zones now:
            Console.WriteLine("Number of zones after saving the zones to file and then clear:")
            For i As Integer = 0 To ocrDocument.Pages.Count - 1
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count)
            Next

            ' Re-load the zones
            ocrDocument.LoadZones(zonesFileName)

            ' Show the zones now:
            ocrDocument.Pages.AutoZone(Nothing)
            Console.WriteLine("Number of zones after loading the zones from file:")
            For i As Integer = 0 To ocrDocument.Pages.Count - 1
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages(i).Zones.Count)
            Next
         End Using
      End Using
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
private static void LoadSaveZonesExample()
   {
      OcrEngineType engineType = OcrEngineType.Professional;
      using(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(engineType, false))
      {
         ocrEngine.Startup(null, null, null, null);
         using(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
         {
            // Add 2 pages
            ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir,"Ocr1.tif"), null);
            ocrDocument.Pages.AddPage(Path.Combine(LEAD_VARS.ImagesDir,"Ocr2.tif"), null);

            // Auto-zone all the pages
            ocrDocument.Pages.AutoZone(null);
            Console.WriteLine("Number of zones after auto-zone:");
            for(int i = 0; i < ocrDocument.Pages.Count; i++)
            {
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
            }

            // Save the zones to a disk file
            string zonesFileName = Path.Combine(LEAD_VARS.ImagesDir,"LoadSaveZonesExample.ozf");
            ocrDocument.SaveZones(zonesFileName);

            // Clear the zones
            for(int i = 0; i < ocrDocument.Pages.Count; i++)
            {
               ocrDocument.Pages[i].Zones.Clear();
            }

            // Show the zones now:
            Console.WriteLine("Number of zones after saving the zones to file and then clear:");
            for(int i = 0; i < ocrDocument.Pages.Count; i++)
            {
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
            }

            // Re-load the zones
            ocrDocument.LoadZones(zonesFileName);

            // Show the zones now:
            ocrDocument.Pages.AutoZone(null);
            Console.WriteLine("Number of zones after loading the zones from file:");
            for(int i = 0; i < ocrDocument.Pages.Count; i++)
            {
               Console.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
            }
         }
      }
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
private async Task LoadSaveZonesExample()
{
   OcrEngineType engineType = OcrEngineType.Advantage;
   IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(engineType, false);
   ocrEngine.Startup(null, null, String.Empty, Tools.OcrEnginePath);

   IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument();

   // Add 2 pages
   IOcrPage ocrPage = null;
   using (RasterCodecs codecs = new RasterCodecs())
   {
      StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(@"Assets\Ocr1.tif");
      using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
         ocrPage = ocrDocument.Pages.AddPage(image, null);

      loadFile = await Tools.AppInstallFolder.GetFileAsync(@"Assets\Ocr2.tif");
      using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
         ocrPage = ocrDocument.Pages.AddPage(image, null);
   }

   // Auto-zone all the pages
   ocrDocument.Pages.AutoZone(null);
   Debug.WriteLine("Number of zones after auto-zone:");
   for (int i = 0; i < ocrDocument.Pages.Count; i++)
   {
      Debug.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
   }

   // Save the zones to a disk file
   string zonesFileName = "LoadSaveZonesExample.ozf";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(zonesFileName);
   await ocrDocument.SaveZonesAsync(saveFile);

   // Clear the zones
   for (int i = 0; i < ocrDocument.Pages.Count; i++)
   {
      ocrDocument.Pages[i].Zones.Clear();
   }

   // Show the zones now:
   Debug.WriteLine("Number of zones after saving the zones to file and then clear:");
   for (int i = 0; i < ocrDocument.Pages.Count; i++)
   {
      Debug.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
   }

   // Re-load the zones
   await ocrDocument.LoadZonesAsync(saveFile);

   // Show the zones now:
   ocrDocument.Pages.AutoZone(null);
   Debug.WriteLine("Number of zones after loading the zones from file:");
   for (int i = 0; i < ocrDocument.Pages.Count; i++)
   {
      Debug.WriteLine("  Page {0} has {1} zones.", i, ocrDocument.Pages[i].Zones.Count);
   }
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

IOcrDocument Interface
IOcrDocument Members
Overload List
IOcrPage.LoadZones(fileName)
IOcrPage.LoadZones(fileName, pageNumber)
IOcrPage.LoadZones(Stream)
IOcrPage.LoadZones(Stream, pageNumber)
IOcrDocument.LoadZones(Stream)
IOcrPage.SaveZones(fileName)
IOcrPage.SaveZones(stream)
IOcrPage.SaveZones(fileName, pageNumber)
IOcrPage.SaveZones(stream, pageNumber)
IOcrDocument.SaveZones(fileName)
IOcrDocument.SaveZones(Stream)
IOcrPageCollection Interface
IOcrZoneCollection Interface
OcrZone Structure
IOcrPage.Recognize
Programming with the LEADTOOLS .NET OCR

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

LoadZones(String) requires an OCR module license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features