Comment convertir image en texte avec la vision par ordinateur en C
IronOCR utilise la vision par ordinateur OpenCV pour détecter automatiquement les régions de texte dans les images avant le traitement OCR. Ce logiciel OCR 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 image en texte par rapport au traitement d'images entières.
Démarrage rapide : Convertir image en texte avec détection automatique de la zone de texte
Cet exemple démontre l'extraction de texte immédiate : chargez une image, utilisez la vision par ordinateur d'IronOCR pour détecter automatiquement la région de texte principale avec FindTextRegion(), puis exécutez .Read(...) pour convertir l'image en texte sur une seule ligne.
-
Installez IronOCR avec le Gestionnaire de Packages NuGet
PM > Install-Package IronOcr -
Copiez et exécutez cet extrait de code.
using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion()); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
- Comment effectuer une reconnaissance optique de caractères (OCR) sur une plaque d'immatriculation en C# (Tutoriel) Tutoriel : Comment extraire le texte d'une facture en C#
- Comment extraire du texte d'une capture d'écran par OCR en C#
- Comment effectuer une reconnaissance optique de caractères (OCR) de sous-titres en C# (Tutoriel)
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque C# pour utiliser la reconnaissance optique de caractères (OCR) avec la vision par ordinateur.
- Utilisez la méthode `FindTextRegion` pour détecter automatiquement les régions de texte.
- Vérifiez quelle zone de texte a été détectée avec la méthode `StampCropRectangleAndSaveAs`
- Utilisez la vision par ordinateur pour séparer l'image originale en images en fonction des régions de texte avec la méthode `FindMultipleTextRegions`
- Utilisez la méthode `GetTextRegions` pour obtenir la liste des zones de culture où du texte a été détecté.
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 dans 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 ?
- Windows :
IronOcr.ComputerVision.Windows- Consultez notre guide d'installation Windows - Linux :
IronOcr.ComputerVision.Linux- Consultez notre tutoriel d'installation Linux - macOS :
IronOcr.ComputerVision.MacOS- Consultez nos instructions d'installation macOS - macOS ARM :
IronOcr.ComputerVision.MacOS.ARM
Comment procéder à l'installation à l'aide de la console du Package Manager?
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 ?
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;
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
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;
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
À 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 restreindre la zone de scan à 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 :
: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)
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 enregistré 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 :
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;
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
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;
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
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 sur celle-ci. 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();
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()
Comment utiliser GetTextRegions pour obtenir les coordonnées d'une région de texte ?
GetTextRegions renvoie une liste de zones de recadrage 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}");
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
' Create a new IronTesseract object for OCR
Dim ocr As New IronTesseract()
' Load an image into OcrInput
Using input As New OcrInput()
input.LoadImage("/path/file.png")
' Get the first page from the input
Dim firstPage = input.GetPages().First()
' Get all text regions detected on this page
Dim textRegions As List(Of Rectangle) = firstPage.GetTextRegions()
' Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:")
For Each region In textRegions
Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}")
Next
' You can also process each region individually
For Each region In textRegions
Dim regionResult = ocr.Read(input, region)
Console.WriteLine($"Text in region: {regionResult.Text}")
Next
End Using
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 :
-
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.
-
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.
-
Contenu mixte : Distinguer les zones de texte et les graphiques dans les documents. Utile pour le traitement des photos avec texte incorporé.
-
Optimisation des performances : Concentrez le traitement OCR uniquement sur les zones contenant du texte. Voir notre guide de configuration de l'OCR rapide.
- 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 :
- Formation personnalisée : Formez le moteur OCR aux polices spécialisées à l'aide de notre guide des fichiers de langue personnalisés
- Prise en charge multilingue : Traitez des documents multilingues grâce à notre fonction multiples langues
- Intégration des codes-barres : Combinez la reconnaissance de texte avec la lecture de codes-barres à l'aide de notre OCR avec capacités de lecture de codes-barres
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.

