Cómo leer de Streams

por Chaknith Bin

Los datos de flujo se refieren a un flujo continuo de información binaria que puede leerse o escribirse. En el contexto de la programación y el tratamiento de datos, los flujos se utilizan para procesar eficazmente datos que pueden ser demasiado grandes para caber por completo en la memoria. Los flujos permiten leer o escribir datos en trozos más pequeños y manejables.

Los métodos de importación de IronOcr también aceptan flujos de datos de imágenes para su importación y lectura. Para ello, basta con pasar los datos del flujo a uno de los métodos de importación. El método se encargará de todos los pasos necesarios para importar la imagen.


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 flujos de lectura

En primer lugar, instancie la clase IronTesseract para realizar el OCR. Utilice el método FromFile de AnyBitmap para importar el archivo de imagen. Este objeto AnyBitmap será capaz de convertir los datos de la imagen en un flujo. A continuación, utilice la sentencia 'using' para crear el objeto OcrImageInput pasando el flujo de imagen con el método GetStream del objeto AnyBitmap. Por último, utilice el método Read para realizar el OCR.

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

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

//  Leer archivo de imagen en AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

//  Importar flujo de imágenes
using var imageInput = new OcrImageInput(anyBitmap.GetStream());
//  Realizar OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing

'  Instanciar IronTesseract
Private ocrTesseract As New IronTesseract()

'  Leer archivo de imagen en AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

'  Importar flujo de imágenes
Private imageInput = New OcrImageInput(anyBitmap.GetStream())
'  Realizar OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#

Especificar región de exploración

Para mejorar el rendimiento en imágenes de gran tamaño y obtener lecturas específicas de determinadas regiones, puede utilizar la clase CropRectangle. El constructor de OcrImageInput acepta un objeto CropRectangle como segundo parámetro. Permite especificar qué región del documento de imagen debe leerse. En el siguiente ejemplo de código, especifico que sólo se deben leer el número de capítulo y la región del título.

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

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

//  Leer archivo de imagen en AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

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

//  Añadir imagen
using var imageInput = new OcrImageInput(anyBitmap.GetStream(), 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()

'  Leer archivo de imagen en AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

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

'  Añadir imagen
Private imageInput = New OcrImageInput(anyBitmap.GetStream(), 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.