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

Comment trouver du texte avec la vision par ordinateur en C#35;

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

IronOCR utilise la vision par ordinateur OpenCV pour détecter automatiquement les régions de texte dans les images avant le traitement OCR. Cette méthode améliore la précision des textes bruités, multirégionaux ou déformés en concentrant la reconnaissance Tesseract uniquement sur les zones de texte identifiées, ce qui améliore considérablement les résultats de l'extraction par rapport au traitement d'images entières.

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

Cet exemple démontre l'extraction immédiate de texte : chargez une image, utilisez la vision par ordinateur d'IronOcr pour auto-détecter la région de texte principale avec FindTextRegion(), puis exécutez .Read(...) pour extraire le texte en une ligne.

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

Comment installer 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. Pour des conseils d'installation détaillés, consultez notre guide d'installation de NuGet.

Pourquoi IronOCR nécessite-t-il un logiciel de vision par ordinateur distinct ?

L'utilisation de ces méthodes nécessite l'installation de NuGet de IronOcr.ComputerVision à la solution. Un message vous invite à le télécharger si vous ne l'avez pas déjà installé. La fonctionnalité de vision par ordinateur s'appuie sur des algorithmes OpenCV qui améliorent considérablement la précision de la détection de texte, à l'instar des techniques utilisées dans nos fonctionnalités reconnaissance des plaques d'immatriculation et balayage des passeports.

Quel paquetage spécifique à la plateforme dois-je installer ?

Comment procéder à l'installation à l'aide de la console du gestionnaire de paquets?

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 fournit les assemblages nécessaires pour utiliser IronOcr Computer Vision avec notre fichier de modèle.

Quelles sont les méthodes de vision par ordinateur disponibles dans IronOCR?

Des exemples de code sont inclus plus loin 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`.

Comment utiliser FindTextRegion pour détecter les zones de texte ?

<TODO : Ajouter une image ici -->

FindTextRegion utilise la vision par ordinateur pour détecter les régions contenant des éléments de texte sur chaque page d'un objet OcrInput. Cette méthode est particulièrement utile pour traiter des images contenant du texte dispersé ou pour améliorer les performances en se concentrant uniquement sur les zones contenant du texte.

Quelle est l'utilisation de base de FindTextRegion?

: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;
$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.

Comment personnaliser les paramètres de FindTextRegion?

Appelez cette méthode avec des paramètres personnalisés pour affiner la détection du texte. Ces paramètres fonctionnent de la même manière que nos configurations de filtres d'images :

: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;
$vbLabelText   $csharpLabel

À quoi ressemble FindTextRegion en pratique?

Dans cet exemple, j'utilise l'image suivante pour une méthode qui doit recadrer les zones contenant du texte, mais les images d'entrée peuvent varier en ce qui concerne l'emplacement du texte. J'utilise FindTextRegion pour limiter le balayage à une zone où la vision par ordinateur a détecté du texte. Cette approche est similaire aux techniques utilisées dans notre tutoriel sur les zones de contenu et les régions de culture. Voici un exemple d'image :

Statistiques de l'entreprise IronSoftware 2022 montrant les métriques des développeurs et les données sur les performances de l'entreprise
: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);
$vbLabelText   $csharpLabel

Comment déboguer et vérifier la détection de régions de texte?

Ce code a deux sorties. Le premier est un fichier .png sauvegardé par StampCropRectangleAndSaveAs utilisé pour le débogage. Cette technique est également abordée dans notre guide de mise en évidence des textes pour le débogage. Nous pouvons voir où IronCV (Computer Vision) a détecté le texte :

Statistiques IronSoftware 2022 avec un cadre rouge montrant la fonctionnalité de détection de texte FindTextRegion

La détection identifie correctement la zone de texte. Le deuxième résultat est le texte lui-même :

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

Comment utiliser FindMultipleTextRegions pour plusieurs zones de texte ?

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, puis divise l'entrée en images distinctes en fonction des régions de texte. Cette fonctionnalité est particulièrement utile pour le traitement de documents comportant plusieurs zones de texte distinctes, à l'instar de notre fonctionnalité de lecture de tableau dans un document :

Quelle est l'utilisation de base de FindMultipleTextRegions?

: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;
$vbLabelText   $csharpLabel

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

Comment personnaliser les paramètres de FindMultipleTextRegions?

Appelez cette méthode avec des paramètres personnalisés pour contrôler la façon dont les régions sont détectées et séparées :

: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;
$vbLabelText   $csharpLabel

Comment traiter des pages individuelles avec FindMultipleTextRegions?

Une autre méthode de surcharge de FindMultipleTextRegions prend une page OCR et renvoie une liste de pages OCR, une pour chaque région de texte qu'elle contient. Cette approche est utile lorsqu'il s'agit de mises en page complexes, à l'instar des techniques décrites dans notre guide de traitement TIFF multi-pages :

: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();
$vbLabelText   $csharpLabel

Comment utiliser GetTextRegions pour obtenir les coordonnées d'une région de texte ?

GetTextRegions renvoie une liste des zones de culture où du texte a été détecté sur une page. Cette méthode est particulièrement utile lorsque vous avez besoin des coordonnées de régions de texte pour un traitement ultérieur ou lors de la mise en œuvre de flux de travail OCR personnalisés. Pour plus de détails sur l'utilisation des résultats, consultez la documentation de la classe OcrResult :

Quand devrais-je utiliser GetTextRegions au lieu de FindTextRegion?

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

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
$vbLabelText   $csharpLabel

Quels sont les cas d'utilisation courants de la vision par ordinateur dans l'OCR ?

La vision par ordinateur améliore considérablement la précision de l'OCR dans des scénarios difficiles. Voici des applications pratiques :

  1. Analyse de la mise en page des documents : identifiez et traitez automatiquement les différentes sections de documents complexes. Particulièrement utile avec les documents numérisés.

  2. Texte en plusieurs colonnes : séparez et lisez les colonnes indépendamment pour les journaux ou les magazines. Utilisez le traitement multithread pour des résultats plus rapides.

  3. Contenu mixte : Distinguer les zones de texte et les graphiques dans les documents. Utile pour le traitement des photos avec texte incorporé.

  4. Optimisation des performances : Concentrez le traitement OCR uniquement sur les zones contenant du texte. Voir notre guide de configuration de l'OCR rapide.

  5. Contrôle de la qualité : Vérifier la détection du texte avant le traitement OCR complet. Notre fonction de suivi de la progression contrôle chaque étape.

Avec les bons paramètres et les bons fichiers d'entrée, l'OCR peut atteindre une capacité de lecture proche de celle de l'homme. Pour des résultats optimaux, combinez la vision par ordinateur avec nos filtres d'optimisation d'image afin d'obtenir la meilleure précision possible en matière d'OCR. Lorsque vous travaillez avec des images de faible qualité, notre guide sur la correction des scans de faible qualité fournit des techniques de prétraitement précieuses.

Techniques avancées de vision par ordinateur

Les développeurs qui cherchent à repousser les limites de la précision de l'OCR peuvent envisager ces approches avancées :

Questions Fréquemment Posées

Qu'est-ce que la vision par ordinateur dans l'OCR et comment améliore-t-elle l'extraction de texte ?

La vision par ordinateur dans IronOcr utilise des algorithmes OpenCV pour détecter automatiquement les régions de texte dans les images avant le traitement OCR. Cela permet d'améliorer considérablement la précision des textes bruités, multirégionaux ou déformés en concentrant la reconnaissance Tesseract uniquement sur les zones de texte identifiées, plutôt que de traiter des images entières.

Comment puis-je mettre en œuvre rapidement l'OCR par vision par ordinateur en C# ?

IronOCR vous permet de mettre en œuvre l'OCR par vision par ordinateur en une seule ligne de code : utilisez IronTesseract avec la méthode FindTextRegion() pour auto-détecter la région de texte principale, puis exécutez .Read() pour extraire le texte immédiatement.

Pourquoi dois-je installer un logiciel de vision artificielle distinct ?

IronOCR nécessite le package NuGet IronOcr.ComputerVision distinct car la fonctionnalité de vision par ordinateur exploite les algorithmes OpenCV. Ces algorithmes améliorent considérablement la précision de la détection de texte et sont essentiels pour des fonctions telles que la reconnaissance des plaques d'immatriculation et la numérisation des passeports.

Quel progiciel de vision par ordinateur spécifique à une plateforme dois-je installer ?

IronOCR propose des packages spécifiques à chaque plateforme : IronOcr.ComputerVision.Windows pour les systèmes Windows, IronOcr.ComputerVision.Linux pour les distributions Linux et IronOcr.ComputerVision.MacOS pour les environnements macOS.

Comment puis-je détecter plusieurs zones de texte dans une image ?

IronOcr fournit la méthode FindMultipleTextRegions pour séparer l'image originale en plusieurs images sur la base des régions de texte détectées. Vous pouvez également utiliser GetTextRegions pour récupérer une liste des zones de culture où du texte a été détecté.

Puis-je vérifier quelles zones de texte ont été détectées avant le traitement ?

Oui, IronOcr inclut la méthode StampCropRectangleAndSaveAs qui vous permet de vérifier quelles régions de texte ont été détectées par les algorithmes de vision par ordinateur avant d'exécuter le processus d'OCR proprement dit.

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,299,091 | Version : 2025.12 vient de sortir