Comment utiliser la vision par ordinateur pour trouver du texte en C#

Comment trouver du texte avec la vision par ordinateur en C

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

IronOCR utilise OpenCV pour exploiter la vision par ordinateur afin de détecter les zones où du texte est présent dans une image. Ceci est utile pour les images contenant beaucoup de bruit, les images avec du texte à de nombreux endroits différents et les images où le texte est déformé. L'utilisation de la vision par ordinateur dans IronOCR déterminera où se trouvent les régions de texte, puis utilisera Tesseract pour tenter de lire ces régions.

Démarrage rapide : Détecter et OCR la région de texte principale

Cet exemple montre à quel point il est facile de démarrer : il suffit de charger une image, de laisser la vision par ordinateur d'IronOCR trouver automatiquement la région de texte principale avec FindTextRegion() , puis d'exécuter immédiatement .Read(...) pour extraire le texte. Une seule ligne de code suffit pour passer de l'image au résultat de la reconnaissance optique de caractères (OCR).

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Installation d'IronOCR.ComputerVision via le package NuGet

Les méthodes OpenCV qui effectuent la vision par ordinateur dans IronOCR sont visibles dans le package NuGet IronOCR standard.

L'utilisation de ces méthodes nécessite l'installation de NuGet d' IronOcr.ComputerVision dans la solution. Un message vous invite à le télécharger si vous ne l'avez pas déjà installé.

  • Windows : IronOcr.ComputerVision.Windows
  • Linux : IronOcr.ComputerVision.Linux
  • macOS : IronOcr.ComputerVision.MacOS
  • macOS ARM : IronOcr.ComputerVision.MacOS.ARM

Installez le package à l'aide du gestionnaire de packages NuGet ou collez le code suivant dans la console du gestionnaire de packages :

Install-Package IronOcr.ComputerVision.Windows

Cela permettra de fournir les assemblages nécessaires pour utiliser IronOCR Computer Vision avec notre fichier de modèle.

Fonctionnalités et API

Des exemples de code sont inclus plus bas dans ce tutoriel. Voici un aperçu général des méthodes actuellement disponibles :

Méthode Explication
Trouver la région du texte Détecter les régions contenant des éléments de texte et indiquer à Tesseract de ne rechercher du texte que dans la zone où du texte a été détecté.
TrouverPlusieursRégionsDeTexte Détecter les zones contenant des éléments de texte et diviser la page en images distinctes en fonction des régions de texte.
GetTextRegions Scans the image and returns a list of text regions as `List`.

Trouver la région du texte

L'utilisation de FindTextRegion utilisera la vision par ordinateur pour détecter les régions contenant des éléments de texte sur chaque page d'un objet OcrInput.

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Prudence Cette surcharge de méthode est actuellement obsolète dans IronOcr 2025.6.x et ne prend pas de paramètres personnalisés.

Peut être appelé éventuellement avec des paramètres personnalisés :

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Dans cet exemple, j'utiliserai l'image suivante pour une méthode que j'écris et qui doit rogner les zones contenant du texte, mais les images d'entrée peuvent varier en termes d'emplacement du texte. Dans ce cas, je peux utiliser FindTextRegion pour restreindre la zone de numérisation à une zone où la vision par ordinateur a détecté du texte. Voici un exemple d'image :

Image avec texte
:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("wh-words-sign.jpg");

// Find the text region using Computer Vision
Rectangle textCropArea = input.GetPages().First().FindTextRegion();

// For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png);

// Looks good, so let us apply this region to hasten the read:
var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea);
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Linq

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("wh-words-sign.jpg")

' Find the text region using Computer Vision
Dim textCropArea As Rectangle = input.GetPages().First().FindTextRegion()

' For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png)

' Looks good, so let us apply this region to hasten the read:
Dim ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea)
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

Ce code produit maintenant deux résultats : le premier est un fichier .png enregistré par StampCropRectangleAndSaveAs , utilisé pour le débogage. Nous pouvons voir où IronCV (Vision par ordinateur) a estimé que le texte se trouvait :

Image avec zone de texte mise en évidence

Ça a l'air plutôt bien. Le deuxième résultat est maintenant le texte lui-même, qui est :

IRONSOFTWARE

50,000+

Developers in our active community

10,777,061 19,313
NuGet downloads Support tickets resolved
50%+ 80%+
Engineering Team growth Support Team growth
$25,000+

Raised with #TEAMSEAS to clean our beaches & waterways

TrouverPlusieursRégionsDeTexte

L'utilisation de FindMultipleTextRegions prend toutes les pages d'un objet OcrInput et utilise la vision par ordinateur pour détecter les zones contenant des éléments de texte et diviser l'entrée en images distinctes en fonction des régions de texte :

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

À partir d'IronOcr v2025.6.x, la méthode FindMultipleTextRegions ne prend plus en charge les paramètres personnalisés.

Peut être appelé éventuellement avec des paramètres personnalisés :

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Une autre surcharge de la méthode FindMultipleTextRegions prend une page OCR et renvoie une liste de pages OCR, une pour chaque région de texte présente sur celle-ci :

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
Imports IronOcr
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
$vbLabelText   $csharpLabel

GetTextRegions

La fonction GetTextRegions renvoie une liste des zones de recadrage où du texte a été détecté sur une page :

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs
using IronOcr;
using IronSoftware.Drawing;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
// List<Rectangle> regions = selectedPage.GetTextRegions();
Imports IronOcr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
' List<Rectangle> regions = selectedPage.GetTextRegions();
$vbLabelText   $csharpLabel

Guides d'utilisation spécifiques

Avec les bons paramètres et les fichiers d'entrée appropriés, la reconnaissance optique de caractères (OCR) peut être un outil très puissant. Elle peut imiter presque parfaitement les capacités de lecture d'un être humain.

Questions Fréquemment Posées

Comment puis-je utiliser la Vision par Ordinateur pour la détection de texte dans les images ?

IronOCR peut être utilisé pour améliorer la détection de texte dans les images en utilisant son intégration avec OpenCV. Les méthodes comme FindTextRegion et FindMultipleTextRegions permettent de localiser et de manipuler les zones de texte efficacement.

Quelles étapes sont nécessaires pour installer IronOCR pour la Vision par Ordinateur sur différents systèmes d'exploitation ?

Pour utiliser IronOCR sur différents systèmes d'exploitation, vous pouvez installer le package IronOCR.ComputerVision via NuGet. Utilisez la commande Install-Package IronOcr.ComputerVision.Windows pour Windows, avec des packages similaires disponibles pour Linux et macOS.

Quelle fonctionnalité fournit la méthode FindTextRegion ?

La méthode FindTextRegion dans IronOCR identifie les zones d'une image où du texte est présent, permettant à Tesseract de rechercher du texte uniquement dans ces régions spécifiées, améliorant ainsi la précision de l'OCR.

Comment les paramètres personnalisés améliorent-ils la détection des régions de texte ?

Vous pouvez affiner la détection des régions de texte dans IronOCR en utilisant des paramètres personnalisés avec la méthode FindTextRegion, comme définir la hauteur minimale du texte et autoriser les sous-régions, pour identifier plus précisément les zones de texte dans les images.

Pourquoi est-il avantageux de détecter plusieurs régions de texte dans une image ?

La détection de plusieurs régions de texte à l'aide de la méthode FindMultipleTextRegions dans IronOCR aide à diviser une image en sections distinctes basées sur le texte, ce qui est particulièrement utile pour traiter des documents avec plusieurs blocs de texte comme les factures et les sous-titres.

Comment les zones de texte détectées peuvent-elles être récupérées à partir d'une image ?

La méthode GetTextRegions dans IronOCR vous permet de récupérer une liste de zones CropRectangle où du texte a été détecté dans une image, permettant un traitement ou une manipulation ultérieure de ces régions de texte.

Quelles sont les principales caractéristiques des capacités de Vision par Ordinateur d'IronOCR ?

Les fonctionnalités de Vision par Ordinateur d'IronOCR incluent la détection des régions de texte grâce à des méthodes comme FindTextRegion et FindMultipleTextRegions, des paramètres OCR personnalisables, et un support pour plusieurs systèmes d'exploitation pour améliorer la précision de la détection du texte.

Comment IronOCR traite-t-il les images avec plusieurs régions de texte ?

IronOCR utilise la méthode FindMultipleTextRegions pour traiter les images en les divisant en images distinctes basées sur les régions de texte détectées, permettant une analyse et une manipulation détaillées de chaque zone de texte.

Où puis-je trouver des exemples de code pour utiliser les méthodes de Vision par Ordinateur dans IronOCR ?

Le tutoriel fournit des exemples de code démontrant l'utilisation de méthodes telles que FindTextRegion et FindMultipleTextRegions avec IronOCR, illustrant des applications pratiques comme la lecture de plaques d'immatriculation ou le traitement de factures.

Qu'est-ce qui est nécessaire pour utiliser les fonctionnalités de Vision par Ordinateur d'IronOCR en C# ?

Pour utiliser les fonctionnalités de Vision par Ordinateur d'IronOCR en C#, vous devez installer le package IronOcr.ComputerVision via NuGet et inclure les espaces de noms nécessaires dans votre projet pour accéder aux méthodes de détection de texte.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 5,167,857 | Version: 2025.11 vient de sortir