OCR en C# y .NET

Otras versiones de este documento:

IronOCR es un componente de programación C# que permite a los programadores .NET obtener texto de imágenes y documentos PDF en 126 idiomes, inclòs el català.

Es una versión avanzada de Tesseract, construida exclusivamente para los desarrolladores de .NET y que supera a regularment altres motors Tesseract tant per velocitat com per precisió.

Contingut d'IronOcr.Languages.Catalan

Este paquete contiene 46 idiomas OCR para .NET:

  • Català
  • CatalàMillor
  • CatalánFast

descargar

Paquet de llengua catalana [català]
* Descargar como Cremallera
* Instalar con
https://www.nuget.org/packages/IronOcr.Languages.Catalan/'> NuGet

Instalación

Lo primero que tenemos que hacer es instalar nuestro paquete OCR en català a su proyecto .NET.

PM> Install-Package IronOCR.Languages.Catalan

Ejemplo de código

Este ejemplo de código C# contiene el texto catalán de un documento Imagen o PDF.

```cs //PM> Install-Package IronOcr.Languages.Catalan using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput(@"images\Catalan.png")) { var Result = Ocr.Read(Input); Var AllText = Result.Text } ```

¿Por qué elegir IronOCR?

IronOCR es una biblioteca de programas .NET fácil de instalar, completa y bien documentada.

Trieu IronOCR per aconseguir una precisión del 99,8% + OCR sense utilitzar cap servei web extern, tarifes en curs ni enviar documents confidencials per Internet.

Por qué los desarrolladores de C# utilizan IronOCR sobre Vanilla Tesseract:

  • Instale NuGet con una única DLL
  • Incluye los motores Tesseract 5, 4 y 3 fuera de la caja.
  • La precisión del 99,8% supera significativamente el Tesseract normal.
  • Mayor velocidad y MultiThreading
  • Compatible con aplicaciones MVC, WebApp, escriptori, consola y servidor
  • No hi ha codi Exes ni C ++ per treballar
  • Soporte completo de OCR en PDF
  • Para realizar OCR en cualquier formato de imagen o PDF
  • Soporte completo .NET Core, Standard i FrameWork
  • Implementación en Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Llegar código de barras y código QR
  • Exportar OCR a XHTML
  • Exportar OCR a documentos PDF que se pueden descargar
  • Compatible con multihilo
  • 126 idiomas internacionales gestionados mediante NuGet u OcrData
  • Extreu imatges, coordenades, estadístiques i tipus de lletra. No només text.
  • Se puede utilizar para redistribuir Tesseract OCR en aplicaciones comerciales y propietarias.

El OCR de hierro brilla cuando se trabaja con imágenes del mundo real y documentos imperfectos como fotografías o escaneigs de baixa resolució que poden tenir sorolls o imperfeccions digitals.

Otras bibliografías OCR gratuitos per a la plataforma .NET, com ara altres API i serveis web de tesseract .net, no funcionen tan bé en aquests casos d’ús del món real.

OCR con Tesseract 5: comienza la codificación en C#

L'ejemplo de código siguiente muestra la facilidad de llegar texto de una imagen con C# o VB .NET.

OneLiner

```cs string Text = new IronTesseract().Read(@"img\Screenshot.png").Text; ```

Hola mundo configurable

```cs // PM> Install-Package IronOCR.Languages.Catalan using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()){ Input.AddImage("images/sample.jpeg") //... podeu afegir qualsevol nombre d'imatges var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

C#PDF OCR

El mismo enfoque se puede utilizar de manera similar para texto extremo de cualquier documento PDF.

```cs var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var input = new OcrInput()) { input.AddPdf("example.pdf", "password"); // També podem seleccionar números de pàgines PDF específics per a OCR var Result = Ocr.Read(input); Console.WriteLine(Result.Text); Console.WriteLine($"{Result.Pages.Count()} Pages"); // 1 pàgina per a cada pàgina del PDF } ```

OCR por un TIFF multipágina

Lectura OCR en formato de archivo TIFF que incluye documentos de varias páginas. TIFF también se puede convertir directament en un fitxer PDF amb text de cerca.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()){ input.AddMultiFrameTiff("multi - frame.tiff"); var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Codis de barres i QR

Una característica única de IronOCR es que puede llegar códigos de barras y códigos QR de documentos mientras se está cerca texto. Las instituciones de la clase OcrResult.OcrBarcode proporcionan al desarrollador información detallada sobre cada codi de barres escanejat.

```cs // using IronOcr; var Ocr = new IronTesseract(); Ocr.Configuration.ReadBarCodes = true; using (var input = new OcrInput()) { input.AddImage("img/Barcode.png"); var Result = Ocr.Read(input); foreach (var Barcode in Result.Barcodes) { Console.WriteLine(Barcode.Value); // també s’exposen propietats de tipus i ubicació } } ```

OCR sobre àrees específiques d'imatges

Todos los métodos de lectura y escaneado de IronOCR proporcionan la posibilidad de especificar exactamente de quina parte d'una o més pàgines volem llegir text. Això és molt útil quan estem buscant formularis estandarditzats i pot estalviar molt de temps i millorar l’eficiència.

Para utilizar las regiones de cultivo, hay que hacer una referencia del sistema a Sistema.Dibujo por poder utilizar el objeto System.Drawing.Rectangle .

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()) { var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 }; // Les dimensions són en px Input.Add("document.png", ContentArea); var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

OCR para escaneos de baja calidad

La classe OcrInput IronOCR puede corregir las exploraciones que Tesseract no sap llegar.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff")) { Input.DeNoise(); // corregeix el soroll digital i el mal escaneig Input.Deskew(); // fixa la rotació i la perspectiva var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Exporte los resultados del OCR a un PDF de cerca

Imatge en PDF amb cadenes de text copiables. Puede ser indexado por los motores de búsqueda y las bases de datos.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()){ input.Title = "Quarterly Report" input.AddImage("image1.jpeg"); input.AddImage("image2.png"); input.AddImage("image3.gif"); var Result = Ocr.Read(input); Result.SaveAsSearchablePdf("searchable.pdf") } ```

Conversión de PDF TIFF a cerca

Convertir un documento TIFF (o qualsevol grup de fitxers d'imatges) directament a un PDF que se pot cercar i que pot ser indexat per la intranet, el lloc web i els motors de cerca de Google.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()){ input.AddMultiFrameTiff("example.tiff") var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf") } ```

Exporta los resultados del OCR a HTML

Conversión de la imagen OCR a XHTML.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput()){ input.Title = "Html Title" input.AddImage("image1.jpeg"); var Result = Ocr.Read(input); Result.SaveAsHocrFile("results.html"); } ```

Filtros de fresa de la imagen OCR

IronOCR proporciona filtros únicos para cada objeto OcrInput para mejorar el rendimiento de l'OCR.

Ejemplo de código de barras de la imagen

Aumenta la calidad de las imágenes de entrada de OCR para obtener resultados OCR mejores y más rápidos.

```cs using IronOcr; var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; using (var Input = new OcrInput(@"LowQuality.jpeg")) { Input.DeNoise(); // corregeix el soroll digital i el mal escaneig Input.Deskew(); // fixa la rotació i la perspectiva var Result = Ocr.Read(Input); Console.WriteLine(Result.Text); } ```

Llista de filtres d'imatges OCR

Los filtros de'entrada para mejorar el rendimiento de l'OCR integrados en IronOCR incluyen:

  • OcrInput.Rotate (doble grau) : gira les imatges un nombre de graus en sentit horari. Por a les agulles del rellotge, utilitzeu números negatius.
  • OcrInput.Binarizar () : aquest filtre d’imatges converteix cada píxel en blanc o negre sense un punt mig. Pot millorar els casos de rendiment de l'OCR amb un contrast molt baix del text amb el fons.
  • OcrInput.ToGrayEscala () : aquest filtre d’imatges converteix cada píxel en un to d’escala de grisos. És poc probable que millori la precisió de l’OCR, però pot millorar la velocitat
  • OcrInput.Contraste () : augmenta el contrast automàticament. Aquest filtre sovint millora la velocitat i la precisió de l’OCR en els escaneigs de baix contrast.
  • OcrInput.DeNoise () : elimina el soroll digital. Este filtro sólo se puede utilizar en el país en cuestión s’espera un soroll.
  • OcrInput.Invertir () : inverteix tots els colors. Por ejemplo, el blanc es torna negre: el negre es torna blanc.
  • OcrInput.Dilate () - Morfologia avançada. La dilatación afegeix píxels als límits dels objetos de una imagen. Contrari a Erode
  • OcrInput.Erode () - Morfologia avançada. L'erosió elimina los píxeles como límites de l’objecte Oposite of Dilate
  • OcrInput.Deskew () : fa girar una imatge perquè sigui correcta cap amunt i ortogonal. Esto es muy útil para el OCR, pero la tolerancia de Tesseract a las exploraciones es enorme arribar a ser de fins a 5 graus.
  • OcrInput.DeepCleanRuido de fondo () - Eliminació de soroll de fons intens. Utilitzeu aquest filtre només en cas que es conegui un soroll extrem de fons del document, ja que aquest filtre també arriscarà a reduir la precisió OCR dels documents nets i és molt car per a la CPU.
  • OcrInput.MejorarResolución : millora la resolució d'imatges de baixa qualitat. Este filtro no és necessari sovint perquè OcrInput.MinimumDPI i OcrInput.TargetDPI capturaran i resoldran automàticament les entrades de baixa resolució.

LimpiarRuido de Fondo. Este es un parámetro que requiere mucho tiempo; tanmateix, permet a la biblioteca neteará automáticamente olvidos digitales, arrugas de papel y otras imperfecciones dentro de ella imatge digital que, en cas contrari, la impossibilitarien de ser llegida per altres biblioteques OCR.

MejorarContraste es un parámetro que hace que IronOCR aumente automáticamente el contraste del texto sobre el fondo de una imagen, aumentando la precisión del OCR y en general aumentando el rendimiento y la velocidad de l’OCR.

MejorarResolución es un parámetro que detecta automáticamente las imágenes de baja resolución (que són inferiores a 275 dpi) y aumenta automáticamente la imagen y, a continuación, muestra todo el texto cuando una biblioteca OCR pugui llegir-la perfectament. Tot i que aquesta operació consumix molt de temps, en general redueix el temps global per a una operació OCR en una imatge.

Idioma IronOCR admite 22 paquetes de idiomas internacionales y la configuración de idioma es pot utilitzar per seleccionar un o més idiomes múltiples que s'aplicaran per a una operació OCR.

Estrategia IronOCR admite dos estrategias. Podemos optar por escanear un documento de forma rápida y sencilla menys precisa o utilitzar una estratègia avançada que utilitzi alguns models d'intel-ligència artificial per mejorar automáticamente la precisión del texto de OCR mirando la relación estadística de las palabras entre si en una frase. .

Espacio de color es un parámetro mediante el cual podemos optar por OCR en escala de grises o color. En en general, la escala de grises es la mejor opción. No obstant això, de vegades, quan hi ha textos o fons de tonalitat similar però de color molt diferent, un espai de color a tot color proporcionarà millors resultats.

DetectarTextoBlancoEnFondosOscuros. En general, todas las bibliotecas OCR esperan un texto negro sobre fons blancs. Este parámetro permite a IronOCR detectar automáticamente negativos o páginas web con texto en blanc i llegir-los.

InputImageType. Este parámetro permite al desarrollador guiar la biblioteca OCR sobre si busca un document complet o un fragment, com ara una captura de pantalla.

Girar y enderezar es un parámetro avanzado que permite a IronOCR la capacidad única de llegar a documents que no només es giren, sinó que potser contenen perspectiva, com ara fotografies de documents de text.

LeerCódigos es una característica útil que permite a IronOCR recibir automáticamente códigos de barras i codis QR a les pàgines, ja que també llegeix text, sense afegir una càrrega de temps addicional.

ColorProfundidad. Este parámetro determina cuántos bits por píxel utilizará la biblioteca OCR para determinar la profundidad de un color. Una profundidad de color más alta puede aumentar la calidad del OCR, però també augmentarà el temps necessari per completar l'operació de l'OCR.

126 paquets d'idiomes

IronOCR admet 126 idiomas internacionales mitjançant paquets d'idiomes que es distribueixen en formato DLL, que es poden descargar des d'aquest lloc web o també des del gestor de paquetes NuGet .

Los idiomas incluyen alemán, francés, inglés, chino, japonés y muchos más. Hi ha paquets d'idiomes especializados para pasaportes MRZ, billetes MICR, datos financieros, matrículas y muchos otros. También puede utilizar qualsevol fitxer tesseract ".traineddata", inclosos els que creeu vosaltres mateixos.

Ejemplo de idioma

Utilización de otros idiomas OCR.

```cs // using IronOcr; // PM> Install IronOcr.Languages.Arabic var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Arabic; using (var input = new OcrInput()) { input.AddImage("img/arabic.gif"); // Afegiu filtres d’imatges si cal // En aquest cas, fins i tot l’entrada pensada és de molt baixa qualitat // IronTesseract pot llegir allò que no pot fer el Tesseract convencional. var Result = Ocr.Read(input); // La consola no pot imprimir àrabment a Windows fàcilment. // Guardem al disc. Result.SaveAsTextFile("arabic.txt"); } ```

Ejemplo de varios idiomas

También es posible hacer OCR utilizando varios idiomas ahora. Esto puede ayudar a obtener metadatos y URL en inglés als documents Unicode.

```cs // using IronOcr; // PM> Install IronOcr.Languages.ChineseSimplified var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.ChineseSimplified; Ocr.AddSecondaryLanguage(OcrLanguage.Catalan); // Podem afegir qualsevol nombre d’idiomes using (var input = new OcrInput()) { input.Add("multi - language.pdf"); var Result = Ocr.Read(input); Result.SaveAsTextFile("results.txt"); } ```

Objetos de resultados OCR detallados

IronOCR devuelve un objeto de resultado OCR por cada operación OCR. En general, los desarrolladores nombrados utiliza la propiedad de texto de este objeto para obtener el texto escaneado de la imagen. Tanmateix, los resultados OCR DOM són molt més avançats que aquest.

```cs using IronOcr; using System.Drawing; //Afegiu referència de muntatge var Ocr = new IronTesseract(); Ocr.Language = OcrLanguage.Catalan; Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm; Ocr.Configuration.ReadBarCodes = true; //Important using (var Input = new OcrInput(@"images\sample.tiff")) { OcrResult Result = Ocr.Read(Input); var Pages = Result.Pages; var Words = Pages [0].Words; var Barcodes = Result.Barcodes; // Exploreu aquí per trobar una API massiva i detallada: // - Pàgines, blocs, parafàfics, línies, paraules, caràcters // - Exportació d'imatges, coordenades de tipus de lletra, dades estadístiques } ```

Rendimiento

IronOCR funciona fuera de la caja sin necesidad de sintonizar o modificar las imágenes de entrada.

Speed is Blazing: IronOcr.2020 + es hasta 10 veces más rápido y tiene un 250% menos de errores que las versiones anteriors.

Después de más

Para obtener más información sobre OCR en C#, VB, F# o cualquier otro idioma .NET, llegue a nuestros tutoriales de la comunitat , que ofereixen exemples reals de com es pot utilitzar IronOCR i poden mostrar els matisos de com treure el màxim partit aquesta biblioteca.

También hay disponible una referencia de objeto completa para desarrolladores de .NET .