Guía de uso de IronOCR Computer Vision

Introducción

IronOCR utiliza OpenCV para utilizar la visión por ordenador para detectar las áreas donde existe texto en una imagen. Esto es útil para imágenes que contienen mucho ruido, imágenes con texto en muchos lugares diferentes e imágenes en las que el texto está deformado. El uso de la visión por ordenador en IronOCR determinará dónde existen regiones de texto y luego utilizará Tesseract para intentar leer esas regiones.

Biblioteca NuGet C# para OCR

Instalar con NuGet

Install-Package IronOcr
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Instalación de IronOCR.ComputerVision mediante el paquete NuGet

Los métodos OpenCV que realizan Visión por Computador en IronOCR son visibles en el paquete regular IronOCR NuGet.

El uso de estos métodos requiere la instalación NuGet de IronOcr.ComputerVision a la solución, se le pedirá que lo descargue si no lo tiene instalado.

  • Windows: IronOcr.ComputerVision.Windows
  • Linux: IronOcr.ComputerVision.Linux
  • macOS: IronOcr.ComputerVision.MacOS
  • macOS ARM: IronOcr.ComputerVision.MacOS.ARM

    Instale utilizando el gestor de paquetes NuGet o pegue lo siguiente en la consola del gestor de paquetes:

PM> Install-Package IronOcr.ComputerVision.Windows


Esto proporcionará los ensamblajes necesarios para utilizar IronOCR Computer Vision con nuestro archivo de modelo.

## Funcionalidad y API

Más adelante se incluyen ejemplos de código. A continuación se ofrece una visión general de los métodos disponibles en la actualidad:
<table class="table table__configuration-variables">
    <tr>
        <th scope="col">Método</th>
        <th scope="col">Explicación</th>
    </tr>
    <tr>
        <td><a href="#anchor-findtextregion">BuscarRegiónDeTexto</a></td>
        <td class="word-break--break-word">Detectar regiones que contengan elementos de texto y ordenar a Tesseract que sólo busque texto dentro del área en la que se haya detectado texto.</td>
    </tr>
     <tr>
        <td><a href="#anchor-findmultipletextregions">BuscarRegionesDeTextoMúltiples</a></td>
        <td class="word-break--break-word">Detecta las áreas que contienen elementos de texto y divide la página en imágenes separadas en función de las regiones de texto.</td>
    </tr>
    <tr>
        <td><a href="#anchor-gettextregions">GetTextRegions</a></td>
        <td class="word-break--break-word">Escanea la imagen y devuelve una lista de regiones de texto como `List<CropRectangle>`.</td>
    </tr>
</table>

## Ejemplos de códigos

### BuscarRegiónDeTexto

El uso de `FindTextRegion` utilizará la visión artificial para detectar las regiones que contienen elementos de texto en cada página de un objeto OcrInput.

```cs
:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-1.cs

Puede llamarse opcionalmente con parámetros personalizados:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
VB   C#

La sobrecarga también se puede utilizar para devolver la región de texto como un rectángulo:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-3.cs
using IronOcr;

using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, Binarize: true);
Imports IronOcr

Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

input.FindTextRegion(Scale:= 2.0, Binarize:= True)
VB   C#

BuscarRegionesDeTextoMúltiples

El uso de FindMultipleTextRegions toma todas las páginas de un objeto OcrInput y utiliza la visión por ordenador para detectar las áreas que contienen elementos de texto y dividir la entrada en imágenes separadas basadas en regiones de texto:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-4.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
VB   C#

Puede llamarse opcionalmente con parámetros personalizados:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-5.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
VB   C#

Otro método de sobrecarga de FindMultipleTextRegions toma una Página OCR y devuelve una lista de Páginas OCR, una por cada región de Texto en ella:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-6.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
Imports IronOcr
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
VB   C#

GetTextRegions

El uso de GetTextRegions devuelve una lista de áreas de recorte en las que se ha detectado texto en una página:

:path=/static-assets/ocr/content-code-examples/tutorials/csharp-recognize-text-from-image-computer-vision-7.cs
using IronOcr;
using IronSoftware.Drawing;
using System.Collections.Generic;
using System.Linq;


int pageIndex = 0;
using var input = new OcrInput();
//  Cargar al menos una imagen
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
var regions = selectedPage.GetTextRegions();
Imports IronOcr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Imports System.Linq


Private pageIndex As Integer = 0
Private input = New OcrInput()
'  Cargar al menos una imagen
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim regions = selectedPage.GetTextRegions()
VB   C#