Cómo leer imágenes

por Chaknith Bin

El OCR, o reconocimiento óptico de caracteres, es una tecnología que se utiliza para reconocer y extraer texto de imágenes. Esta tecnología es especialmente útil para digitalizar documentos impresos, ya que permite extraer y trabajar con el contenido textual de páginas escaneadas, fotografías u otros archivos de imagen.

IronOCR admite varios formatos de imagen, como jpg, png, gif, tiff y bmp. También dispone de filtros de imagen para mejorar la capacidad de lectura.


Biblioteca NuGet C# para OCR

Instalar con NuGet

Install-Package IronOcr
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de lectura de imágenes

Comience por instanciar la clase IronTesseract para habilitar el OCR. Utilice la sentencia 'using' para crear un objeto OcrImageInput, especificando la ruta del archivo de imagen. Así se garantiza la correcta eliminación de los recursos cuando ya no se necesitan. IronOCR soporta imágenes de entrada en varios formatos, incluyendo jpg, png, gif, tiff y bmp. Por último, utilice el método Read para realizar el OCR.

:path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs
using IronOcr;

//  Instanciar IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

//  Añadir imagen
using var imageInput = new OcrImageInput("Potter.png");

//  Realizar OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr

'  Instanciar IronTesseract
Private ocrTesseract As New IronTesseract()

'  Añadir imagen
Private imageInput = New OcrImageInput("Potter.png")

'  Realizar OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#
Leer imagen PNG

Visite el Cómo leer GIF y TIFF de varias páginas/cuadros para saber más sobre la lectura de imágenes TIFF y GIF.

Importar imágenes como bytes

Aparte de la ruta de archivo, la clase OcrImageInput también acepta información de imagen en forma de bytes, AnyBitmap, Stream, así como Image. AnyBitmap es un objeto bitmap de tipo IronSoftware.Drawing.AnyBitmap.

:path=/static-assets/ocr/content-code-examples/how-to/input-images-import-byte.cs
using IronOcr;
using System.IO;

//  Instanciar IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

//  Leer byte del archivo
byte[] data = File.ReadAllBytes("Potter.tiff");

//  Importar byte de imagen
using var imageInput = new OcrImageInput(data);
//  Realizar OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.IO

'  Instanciar IronTesseract
Private ocrTesseract As New IronTesseract()

'  Leer byte del archivo
Private data() As Byte = File.ReadAllBytes("Potter.tiff")

'  Importar byte de imagen
Private imageInput = New OcrImageInput(data)
'  Realizar OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#

Especificar región de exploración

También se acepta un CropRectangle al instanciar la clase OcrImageInput. Esto le permite especificar qué región del documento de imagen debe ser OCR'ed. Dependiendo del documento de imagen, especificar la región a escanear puede mejorar significativamente el rendimiento. En el ejemplo de código que proporciono, especifico que sólo deben leerse el número de capítulo y el título.

:path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

//  Instanciar IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

//  Especifique la región de cultivo
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);

//  Añadir imagen
using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion);
//  Realizar OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

//  Envía el resultado a la consola
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

'  Instanciar IronTesseract
Private ocrTesseract As New IronTesseract()

'  Especifique la región de cultivo
Private scanRegion As New Rectangle(800, 200, 900, 400)

'  Añadir imagen
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
'  Realizar OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

'  Envía el resultado a la consola
Console.WriteLine(ocrResult.Text)
VB   C#

Resultado OCR

Leer región específica

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.