Cómo leer desde objetos System.Drawing

This article was translated from English: Does it need improvement?
Translated
View the article in English

por Chaknith Bin

System.Drawing.Bitmap es una clase de .NET Framework que se utiliza para trabajar con imágenes de mapa de bits. Proporciona métodos y propiedades para crear, manipular y mostrar imágenes de mapa de bits.

System.Drawing.Image es una clase base para todos los objetos de imagen GDI+ en .NET Framework. Es la clase padre para varios tipos de imagen, incluyendo System.Drawing.Bitmap.

IronSoftware.Drawing.AnyBitmap es una clase de mapa de bits enIronDrawinguna biblioteca de código abierto desarrollada originalmente por Iron Software. Ayuda a los ingenieros de software de C# a sustituir System.Drawing.Common en proyectos .NET en plataformas Windows, macOS y Linux.

Comience con IronOCR

Comience a usar IronOCR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer



Leer System.Drawing.Bitmap Ejemplo

En primer lugar, instancie la clase IronTesseract para realizar el OCR. Crea un System.Drawing.Bitmap desde uno de los varios métodos. En el ejemplo de código, he decidido utilizar una ruta de archivo.

A continuación, utiliza la sentencia 'using' para crear el objeto OcrImageInput, pasándole la imagen del objeto System.Drawing.Bitmap. Por último, utilice el método Read para realizar el OCR.

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-bitmap.cs
using IronOcr;
using System.Drawing;

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

// Read image file to Bitmap
Bitmap bitmap = new Bitmap("Potter.tiff");

// Import System.Drawing.Bitmap
using var imageInput = new OcrImageInput(bitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read image file to Bitmap
Private bitmap As New Bitmap("Potter.tiff")

' Import System.Drawing.Bitmap
Private imageInput = New OcrImageInput(bitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#

Leer System.Drawing.Image Ejemplo

Leer desde una System.Drawing.Image es tan simple como crear el objeto OcrImageInput con la Imagen y luego realizar el proceso estándar de OCR utilizando el método Read.

:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-image.cs
using IronOcr;
using Image = System.Drawing.Image;

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

// Open image file as Image
Image image = Image.FromFile("Potter.tiff");

// Import System.Drawing.Image
using var imageInput = new OcrImageInput(image);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports Image = System.Drawing.Image

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as Image
Private image As Image = Image.FromFile("Potter.tiff")

' Import System.Drawing.Image
Private imageInput = New OcrImageInput(image)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#

Leer IronSoftware.Drawing.AnyBitmap Ejemplo

Del mismo modo, después de crear u obtener un objeto AnyBitmap, puede construir la clase OcrImageInput. El constructor se encargará de todos los pasos necesarios para importar los datos. El siguiente ejemplo de código lo demuestra.

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

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

// Open image file as AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");

// Import IronSoftware.Drawing.AnyBitmap
using var imageInput = new OcrImageInput(anyBitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Open image file as AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")

' Import IronSoftware.Drawing.AnyBitmap
Private imageInput = New OcrImageInput(anyBitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
VB   C#

Especificar región de exploración

En la construcción de la clase OcrImageInput, puede especificar el área a escanear. Permite definir la región específica del documento de imagen para el OCR. Dependiendo del documento de imagen, la especificación de la región de escaneado puede mejorar significativamente el rendimiento. En el ejemplo de código proporcionado, especifico que sólo deben extraerse 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;

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

// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);

// Add image
using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output the result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)

' Add image
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output the result to console
Console.WriteLine(ocrResult.Text)
VB   C#

Resultado OCR

Leer región específica
Chaknith related to Resultado OCR

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.