Comment lire à partir d'objets System.Drawing

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

par Chaknith Bin

System.Drawing.Bitmap est une classe du Framework .NET utilisée pour travailler avec des images bitmap. Il fournit des méthodes et des propriétés pour créer, manipuler et afficher des images bitmap.

System.Drawing.Image est une classe de base pour tous les objets image GDI+ dans le Framework .NET. C'est la classe mère de plusieurs types d'images, dont System.Drawing.Bitmap.

IronSoftware.Drawing.AnyBitmap est une classe de bitmap enDessin au ferune bibliothèque open-source développée à l'origine par Iron Software. Il aide les ingénieurs logiciels C# à remplacer System.Drawing.Common dans les projets .NET sur les plateformes Windows, macOS et Linux.

Commencez avec IronOCR

Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer



Lire l'exemple de System.Drawing.Bitmap

Tout d'abord, instanciez la classe IronTesseract pour effectuer l'OCR. Créer un System.Drawing.Bitmap à partir de l'une des différentes méthodes. Dans l'exemple de code, j'ai décidé d'utiliser un chemin de fichier.

Ensuite, utilisez l'instruction "using" pour créer l'objet OcrImageInput, en lui transmettant l'image de l'objet System.Drawing.Bitmap. Enfin, utilisez la méthode Read pour effectuer l'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#

Lire l'exemple de System.Drawing.Image

Pour lire une image System.Drawing.Image, il suffit de créer l'objet OcrImageInput avec l'image, puis d'exécuter le processus d'OCR standard à l'aide de la méthode 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#

Lire l'exemple de IronSoftware.Drawing.AnyBitmap

De même, après avoir créé ou obtenu un objet AnyBitmap, vous pouvez construire la classe OcrImageInput. Le constructeur se chargera de toutes les étapes nécessaires à l'importation des données. L'exemple de code ci-dessous le démontre.

: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#

Spécifier la région de balayage

Dans la construction de la classe OcrImageInput, vous pouvez spécifier la zone à scanner. Cela vous permet de définir la région spécifique du document image pour l'OCR. En fonction du document image, la spécification de la région de numérisation peut améliorer considérablement les performances. Dans l'exemple de code fourni, je spécifie que seuls le numéro de chapitre et le titre doivent être extraits.

: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#

Résultat du ROC

Lire une région spécifique
Chaknith related to Résultat du ROC

Chaknith Bin

Ingénieur logiciel

Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.