Wie man Computer Vision zur Texterkennung in C# verwendet

Textsuche mit Computer Vision in C#

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

IronOCR verwendet OpenCV Computer Vision, um Textbereiche in Bildern vor der OCR-Verarbeitung automatisch zu erkennen. Dies verbessert die Genauigkeit bei verrauschtem, mehrbereichigem oder verzerrtem Text, da sich die Tesseract-Erkennung nur auf die identifizierten Textbereiche konzentriert, was die Extraktionsergebnisse im Vergleich zur Verarbeitung ganzer Bilder deutlich verbessert.

als-Überschrift:2(Schnellstart: Erkennen und OCR der Haupttextregion)

Dieses Beispiel demonstriert die sofortige Textextraktion: Laden Sie ein Bild, verwenden Sie IronOCRs Computer Vision, um die Haupttextregion mit FindTextRegion() automatisch zu erkennen, und führen Sie dann .Read(...) aus, um den Text in einer Zeile zu extrahieren.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Wie installiere ich IronOCR.ComputerVision über das NuGet-Paket?

OpenCV-Methodeen, die Computer Vision in IronOCR ausführen, sind im regulären IronOCR NuGet-Paket sichtbar. Eine ausführliche Anleitung zur Installation finden Sie in unserer NuGet-Installationsanleitung.

Warum benötigt IronOCR ein separates Computer Vision Paket?

Die Verwendung dieser Methodeen erfordert die NuGet-Installation von IronOcr.ComputerVision in der Lösung. Sie werden aufgefordert, es herunterzuladen, wenn Sie es nicht installiert haben. Die Computer-Vision-Funktionalität nutzt OpenCV-Algorithmen, die die Genauigkeit der Texterkennung erheblich verbessern, ähnlich wie die Techniken, die in unseren Funktionen Kennzeichenerkennung und Reisepass-Scanning verwendet werden.

Welches plattformspezifische Paket sollte ich installieren?

Wie installiere ich mit der Paketmanager-Konsole?

Installieren Sie es mit dem NuGet-Paket-Manager oder fügen Sie das Folgende in die Paket-Manager-Konsole ein:

Install-Package IronOcr.ComputerVision.Windows

Dies liefert die notwendigen Baugruppen, um IronOcr Computer Vision mit unserer Modelldatei zu verwenden.

Welche Computer Vision Methodeen sind in IronOCR verfügbar?

Code-Beispiele sind weiter unten in diesem Tutorial enthalten. Im Folgenden finden Sie einen allgemeinen Überblick über die derzeit verfügbaren Methodeen:

Methode Erläuterung
Textbereich finden Erkennen Sie Regionen, die Textelemente enthalten, und weisen Sie Tesseract an, nur innerhalb des Bereichs, in dem Text erkannt wurde, nach Text zu suchen.
Mehrere Textbereiche finden Erkennen Sie Bereiche, die Textelemente enthalten, und unterteilen Sie die Seite in separate Bilder, die auf den Textbereichen basieren.
GetTextRegions Scans the image and returns a list of text regions as `List`.

Wie verwende ich FindTextRegion, um Textbereiche zu erkennen?

FindTextRegion verwendet Computer Vision, um Regionen mit Textelementen auf jeder Seite eines OcrInput-Objekts zu erkennen. Diese Methodee ist besonders nützlich bei der Verarbeitung von Bildern mit verstreutem Text oder wenn Sie die Leistung verbessern müssen, indem Sie sich nur auf texthaltige Bereiche konzentrieren.

Was ist die grundlegende Verwendung von 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
$vbLabelText   $csharpLabel

Vorsicht Diese Methodeenüberladung ist derzeit in IronOcr 2025.6.x veraltet und nimmt keine benutzerdefinierten Parameter an.

Wie kann ich die Parameter von FindTextRegion anpassen?

Rufen Sie diese Methodee mit benutzerdefinierten Parametern auf, um die Texterkennung feinabzustimmen. Diese Parameter funktionieren ähnlich wie unsere Bildfilterkonfigurationen:

: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

Wie sieht FindTextRegion in der Praxis aus?

In diesem Beispiel verwende ich das folgende Bild für eine Methodee, bei der Bereiche mit Text beschnitten werden müssen, aber die Eingabebilder können in der Textposition variieren. Ich verwende FindTextRegion, um den Scan auf einen Bereich einzugrenzen, in dem Computer Vision Text erkannt hat. Dieser Ansatz ähnelt den Techniken, die in unserem Tutorial zu Inhaltsbereichen und Ausschnittregionen verwendet werden. Dies ist ein Beispielbild:

IronSoftware 2022 Unternehmensstatistiken mit Entwicklerkennzahlen und Geschäftsleistungsdaten
: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

Wie debugge und überprüfe ich die Erkennung von Textbereichen?

Dieser Code hat zwei Ausgaben. Die erste ist eine .png-Datei, die von StampCropRectangleAndSaveAs gespeichert wird und der Fehlersuche dient. Diese Technik wird auch in unserem Leitfaden Highlight-Texte für die Fehlersuche behandelt. Wir können sehen, wo IronCV (Computer Vision) den Text erkannt hat:

IronSoftware 2022-Statistiken mit rot umrandetem Kasten, der die Texterkennungsfunktion FindTextRegion zeigt

Die Erkennung identifiziert den Textbereich genau. Die zweite Ausgabe ist der Text selbst:

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

Wie verwende ich FindMultipleTextRegions für mehrere Textbereiche?

FindMultipleTextRegions nimmt alle Seiten eines OcrInput-Objekts und verwendet Computer Vision, um Bereiche zu erkennen, die Textelemente enthalten, und teilt dann die Eingabe in separate Bilder auf der Grundlage von Textregionen. Dies ist besonders nützlich für die Bearbeitung von Dokumenten mit mehreren unterschiedlichen Textbereichen, ähnlich wie bei unserer Tabelle im Dokument lesen-Funktionalität:

Was ist die grundlegende FindMultipleTextRegions-Verwendung?

: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

Vorsicht Ab IronOcr v2025.6.x unterstützt die Methodee FindMultipleTextRegions keine eigenen Parameter mehr.

Wie kann ich die Parameter von FindMultipleTextRegions anpassen?

Rufen Sie diese Methodee mit benutzerdefinierten Parametern auf, um zu steuern, wie die Regionen erkannt und getrennt werden:

: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

Wie kann ich einzelne Seiten mit FindMultipleTextRegions verarbeiten?

Eine andere Überladungsmethode von FindMultipleTextRegions nimmt eine OCR-Seite und gibt eine Liste von OCR-Seiten zurück, eine für jede Textregion auf dieser Seite. Dieser Ansatz hilft beim Umgang mit komplexen Layouts, ähnlich den Techniken, die in unserem Multipage TIFF Processing Guide beschrieben sind:

: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

Wie verwende ich GetTextRegions, um Textbereichskoordinaten zu erhalten?

GetTextRegions gibt eine Liste der Beschnittbereiche zurück, in denen Text auf einer Seite erkannt wurde. Diese Methodee ist besonders nützlich, wenn Sie die Koordinaten von Textregionen für die weitere Verarbeitung benötigen oder wenn Sie benutzerdefinierte OCR-Workflows implementieren. Weitere Details zur Arbeit mit Ergebnissen finden Sie in unserer OcrResult Klassendokumentation:

Wann sollte ich GetTextRegions anstelle von FindTextRegion verwenden?

/* :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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Was sind häufige Anwendungsfälle für Computer Vision in OCR?

Computer Vision verbessert die OCR-Genauigkeit in anspruchsvollen Szenarien erheblich. Hier sind praktische Anwendungen:

  1. Dokumentenlayout-Analyse: Identifizieren und verarbeiten Sie verschiedene Abschnitte komplexer Dokumente automatisch. Besonders nützlich bei gescannten Dokumenten.

  2. Mehrspaltiger Text: Trennen und lesen Sie Spalten für Zeitungen oder Zeitschriften unabhängig voneinander. Verwenden Sie multithreaded processing für schnellere Ergebnisse.

  3. Gemischter Inhalt: Unterscheiden Sie zwischen Textbereichen und Grafiken in Dokumenten. Hilfreich bei der Bearbeitung von Fotos mit eingebettetem Text.

  4. Performance-Optimierung: Konzentrieren Sie die OCR-Verarbeitung nur auf texthaltige Bereiche. Siehe unseren fast OCR Konfigurationsleitfaden.

  5. Qualitätskontrolle: Überprüfen Sie die Texterkennung vor der vollständigen OCR-Verarbeitung. Unsere Fortschrittskontrolle überwacht jede Phase.

Mit den richtigen Einstellungen und Eingabedateien kann OCR eine nahezu menschliche Lesefähigkeit erreichen. Für optimale Ergebnisse kombinieren Sie Computer Vision mit unseren Bildoptimierungsfiltern, um die bestmögliche OCR-Genauigkeit zu erreichen. Für die Arbeit mit Bildern geringer Qualität bietet unser Leitfaden Fixing low quality scans wertvolle Techniken zur Vorverarbeitung.

Fortgeschrittene Computer-Vision-Techniken

Entwickler, die die Grenzen der OCR-Genauigkeit erweitern möchten, sollten diese fortschrittlichen Ansätze in Betracht ziehen:

Häufig gestellte Fragen

Was ist Computer Vision in OCR und wie verbessert es die Textextraktion?

Computer Vision in IronOCR verwendet OpenCV-Algorithmen, um Textbereiche in Bildern vor der OCR-Verarbeitung automatisch zu erkennen. Dadurch wird die Genauigkeit bei verrauschtem, mehrbereichigem oder verzerrtem Text erheblich verbessert, da sich die Tesseract-Erkennung nur auf die erkannten Textbereiche konzentriert, anstatt das gesamte Bild zu verarbeiten.

Wie kann ich Computer Vision OCR in C# schnell implementieren?

IronOCR ermöglicht die Implementierung von Computer Vision OCR in nur einer Codezeile: Verwenden Sie IronTesseract mit der FindTextRegion()-Methode zur automatischen Erkennung der Haupttextregion und führen Sie dann .Read() aus, um den Text sofort zu extrahieren.

Warum muss ich ein separates Computer Vision-Paket installieren?

IronOCR erfordert das separate NuGet-Paket IronOcr.ComputerVision, da die Computer-Vision-Funktionalität auf OpenCV-Algorithmen basiert. Diese Algorithmen verbessern die Texterkennungsgenauigkeit erheblich und sind für Funktionen wie die Nummernschilderkennung und das Scannen von Reisepässen unerlässlich.

Welches plattformspezifische Computer Vision-Paket sollte ich installieren?

IronOCR bietet plattformspezifische Pakete an: IronOcr.ComputerVision.Windows für Windows-Systeme, IronOcr.ComputerVision.Linux für Linux-Distributionen und IronOcr.ComputerVision.MacOS für macOS-Umgebungen.

Wie kann ich mehrere Textbereiche in einem Bild erkennen?

IronOCR bietet die FindMultipleTextRegions-Methode, um das Originalbild anhand der erkannten Textregionen in mehrere Bilder aufzuteilen. Sie können auch GetTextRegions verwenden, um eine Liste der Ausschnittbereiche abzurufen, in denen Text erkannt wurde.

Kann ich überprüfen, welche Textbereiche vor der Verarbeitung erkannt wurden?

Ja, IronOCR enthält die StampCropRectangleAndSaveAs-Methode, mit der Sie überprüfen können, welche Textbereiche von den Computer-Vision-Algorithmen erkannt wurden, bevor der eigentliche OCR-Prozess ausgeführt wird.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht