Jak wyodrębnić tekst z obrazów w języku C#

C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract

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

Szukasz sposobu na konwersję obrazów na tekst w C# bez zawiłości związanych z konfiguracją Tesseract? Ten kompleksowy samouczek IronOCR C# pokazuje, jak wdrożyć zaawansowane rozpoznawanie znaków w aplikacjach .NET za pomocą zaledwie kilku linii kodu.

Quickstart: Wyodrębnij tekst z obrazu w jednej linii

Ten przykład pokazuje, jak łatwo zrozumieć IronOCR—tylko jedna linia C# zamienia twój obraz w tekst. Demonstruje inicjowanie silnika OCR i natychmiastowe odczytywanie oraz pobieranie tekstu bez złożonej konfiguracji.

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr
  2. Skopiuj i uruchom ten fragment kodu.

    string text = new IronTesseract().Read("image.png").Text;
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak odczytać tekst z obrazów w aplikacjach .NET?

Aby osiągnąć funkcjonalność OCR C# konwersji obrazu na tekst w aplikacjach .NET, potrzebujesz niezawodnej biblioteki OCR. IronOCR zapewnia zarządzane rozwiązanie z użyciem klasy IronOcr.IronTesseract, która maksymalizuje zarówno dokładność, jak i prędkość bez potrzeby zewnętrznych zależności.

Najpierw zainstaluj IronOCR do swojego projektu w Visual Studio. Możesz pobrać bibliotekę DLL IronOCR bezpośrednio lub użyć NuGet Package Manager.

Install-Package IronOcr

Dlaczego wybrać IronOCR do OCR C# bez Tesseract?

Kiedy potrzebujesz konwersji obrazów na tekst w C#, IronOCR oferuje znaczące zalety w porównaniu z tradycyjnymi wdrożeniami Tesseract:

  • Działa natychmiast w czystych środowiskach .NET
  • Nie wymaga instalacji ani konfiguracji Tesseract
  • Uruchamia najnowsze silniki: Tesseract 5 (plus Tesseract 4 i 3)
  • Kompatybilny z .NET Framework 4.6.2+, .NET Standard 2+, oraz .NET Core 2, 3, 5, 6, 7, 8, 9 i 10
  • Poprawia dokładność i prędkość w porównaniu z czystym Tesseract
  • Wspiera wdrożenia Xamarin, Mono, Azure i Docker
  • Zarządza złożonymi słownikami Tesseract poprzez pakiety NuGet
  • Automatycznie obsługuje pliki PDF, MultiFrame TIFF oraz wszystkie główne formaty obrazów
  • Koryguje skany niskiej jakości i przekrzywione dla optymalnych rezultatów

Jak używać samouczka IronOCR C# do podstawowego OCR?

Ten przykład C# Iron Tesseract pokazuje najprostszy sposób na odczytywanie tekstu z obrazu z użyciem IronOCR. Klasa IronOcr.IronTesseract wyodrębnia tekst i zwraca go jako ciąg znaków.

// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup

using IronOcr;
using System;

try
{
    // Initialize IronTesseract for OCR operations
    var ocrEngine = new IronTesseract();

    // Path to your image file - supports PNG, JPG, TIFF, BMP, and more
    var imagePath = @"img\Screenshot.png";

    // Create input and perform OCR to convert image to text
    using (var input = new OcrInput(imagePath))
    {
        // Read text from image and get results
        OcrResult result = ocrEngine.Read(input);

        // Display extracted text
        Console.WriteLine(result.Text);
    }
}
catch (OcrException ex)
{
    // Handle OCR-specific errors
    Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}
' Basic C# OCR image to text conversion using IronOCR
' This example shows how to extract text from images without complex setup

Imports IronOcr
Imports System

Try
	' Initialize IronTesseract for OCR operations
	Dim ocrEngine = New IronTesseract()

	' Path to your image file - supports PNG, JPG, TIFF, BMP, and more
	Dim imagePath = "img\Screenshot.png"

	' Create input and perform OCR to convert image to text
	Using input = New OcrInput(imagePath)
		' Read text from image and get results
		Dim result As OcrResult = ocrEngine.Read(input)

		' Display extracted text
		Console.WriteLine(result.Text)
	End Using
Catch ex As OcrException
	' Handle OCR-specific errors
	Console.WriteLine($"OCR Error: {ex.Message}")
Catch ex As Exception
	' Handle general errors
	Console.WriteLine($"Error: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Ten kod osiąga 100% dokładność na klarownych obrazach, wyodrębniając tekst dokładnie tak, jak się pojawia:

IronOCR Simple Example

In this simple example we test the accuracy of our C# OCR library to read text from a PNG Image. This is a very basic test, but things will get more complicated as the tutorial continues.

The quick brown fox jumps over the lazy dog

Klasa IronTesseract obsługuje złożone operacje OCR wewnętrznie. Automatycznie skanuje wyrównanie, optymalizuje rozdzielczość i używa AI do odczytywania tekstu z obrazu za pomocą IronOCR z dokładnością na poziomie ludzkim.

Pomimo skomplikowanego przetwarzania, które odbywa się w tle - w tym analizy obrazu, optymalizacji silnika i inteligentnego rozpoznawania tekstu - proces OCR dopasowuje się do szybkości czytania przez człowieka, utrzymując wyjątkowe poziomy dokładności.

Simple Example IronOCR pokazujący konwersję obrazu OCR C# na tekst z dokładnością 100% Zrzut ekranu demonstrujący zdolność IronOCR do wyodrębniania tekstu z obrazu PNG z perfekcyjną dokładnością

Jak wdrożyć zaawansowane OCR C# bez konfiguracji Tesseract?

Dla aplikacji produkcyjnych wymagających optymalnej wydajności podczas konwersji obrazów na tekst w C#, użyj razem klas OcrInput i IronTesseract. To podejście zapewnia szczegółową kontrolę nad procesem OCR.

Funkcje klasy OcrInput

  • Przetwarza wiele formatów obrazów: JPEG, TIFF, GIF, BMP, PNG
  • Importuje kompletne PDF-y lub określone strony
  • Poprawia kontrast, rozdzielczość i jakość obrazu automatycznie
  • Koryguje obrót, szumy skanowania, przekrzywienie i obrazy negatywowe

Funkcje klasy IronTesseract

  • Dostęp do ponad 127 gotowych pakietów językowych
  • Zawiera silniki Tesseract 5, 4 i 3
  • Specyfikacja typu dokumentu (zrzut ekranu, fragment lub pełny dokument)
  • Zintegrowane funkcje odczytu BarCODE
  • Wiele formatów wyjściowych: pliki PDF z możliwością wyszukiwania, HOCR HTML, obiekty DOM i ciągi znaków

Jak rozpocząć pracę z OcrInput i IronTesseract?

Oto zalecana konfiguracja dla tego samouczka IronOCR C#, która działa dobrze z większością typów dokumentów:

using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
using IronOcr;

// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();

// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
    // Process specific pages from multi-page TIFF files
    int[] pageIndices = new int[] { 1, 2 };

    // Load TIFF frames - perfect for scanned documents
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Execute OCR to read text from image using IronOCR
    OcrResult result = ocr.Read(input);

    // Output the extracted text
    Console.WriteLine(result.Text);
}
Imports IronOcr

' Initialize IronTesseract for advanced OCR operations
Private ocr As New IronTesseract()

' Create input container for processing multiple images
Using input As New OcrInput()
	' Process specific pages from multi-page TIFF files
	Dim pageIndices() As Integer = { 1, 2 }

	' Load TIFF frames - perfect for scanned documents
	input.LoadImageFrames("img\Potter.tiff", pageIndices)

	' Execute OCR to read text from image using IronOCR
	Dim result As OcrResult = ocr.Read(input)

	' Output the extracted text
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Ta konfiguracja konsekwentnie zapewnia niemal idealną dokładność w przypadku skanów o średniej jakości. Metoda LoadImageFrames skutecznie obsługuje dokumenty wielostronicowe, co czyni ją idealną dla scenariuszy przetwarzania wsadowego.


Wielostronicowy dokument TIFF zawierający tekst o Harrym Potterze, gotowy do przetworzenia przez OCR w języku C#

Przykładowy dokument TIFF pokazujący możliwości IronOCR w zakresie ekstrakcji tekstu z wielu stron

Możliwość odczytu tekstu z obrazów i BARCODE-ów w zeskanowanych dokumentach, takich jak pliki TIFF, pokazuje, w jaki sposób IronOCR upraszcza złożone zadania OCR. Biblioteka doskonale radzi sobie z dokumentami z życia codziennego, płynnie obsługując wielostronicowe pliki TIFF i wyodrębnianie tekstu z plików PDF.

Jak IronOCR radzi sobie ze skanami niskiej jakości?


Skan niskiej jakości z cyfrowym szumem, pokazujący możliwości poprawy jakości obrazu IronOCR

Dokument o niskiej rozdzielczości z zakłóceniami, który IronOCR może dokładnie przetworzyć przy użyciu filtrów obrazu

W przypadku pracy z niedoskonałymi skanami zawierającymi zniekształcenia i szumy cyfrowe, biblioteka IronOCR przewyższa inne biblioteki OCR dla języka C#. Zostało zaprojektowane specjalnie z myślą o rzeczywistych scenariuszach, a nie idealnych obrazach testowych.

// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;

var ocr = new IronTesseract();

try
{
    using (var input = new OcrInput())
    {
        // Load specific pages from poor-quality TIFF
        var pageIndices = new int[] { 0, 1 };
        input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);

        // Apply deskew filter to correct rotation and perspective
        input.Deskew(); // Critical for improving accuracy on skewed scans

        // Perform OCR with enhanced preprocessing
        OcrResult result = ocr.Read(input);

        // Display results
        Console.WriteLine("Recognized Text:");
        Console.WriteLine(result.Text);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error during OCR: {ex.Message}");
}
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;

var ocr = new IronTesseract();

try
{
    using (var input = new OcrInput())
    {
        // Load specific pages from poor-quality TIFF
        var pageIndices = new int[] { 0, 1 };
        input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);

        // Apply deskew filter to correct rotation and perspective
        input.Deskew(); // Critical for improving accuracy on skewed scans

        // Perform OCR with enhanced preprocessing
        OcrResult result = ocr.Read(input);

        // Display results
        Console.WriteLine("Recognized Text:");
        Console.WriteLine(result.Text);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error during OCR: {ex.Message}");
}
' Advanced Iron Tesseract C# example for low-quality images
Imports IronOcr
Imports System

Private ocr = New IronTesseract()

Try
	Using input = New OcrInput()
		' Load specific pages from poor-quality TIFF
		Dim pageIndices = New Integer() { 0, 1 }
		input.LoadImageFrames("img\Potter.LowQuality.tiff", pageIndices)

		' Apply deskew filter to correct rotation and perspective
		input.Deskew() ' Critical for improving accuracy on skewed scans

		' Perform OCR with enhanced preprocessing
		Dim result As OcrResult = ocr.Read(input)

		' Display results
		Console.WriteLine("Recognized Text:")
		Console.WriteLine(result.Text)
	End Using
Catch ex As Exception
	Console.WriteLine($"Error during OCR: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Używając Input.Deskew(), dokładność wzrasta do 99,8% na niskiej jakości skanach, prawie osiągając wyniki wysokiej jakości. To pokazuje, dlaczego IronOCR jest preferowanym wyborem dla OCR w C# bez komplikacji związanych z Tesseractem.

Filtry obrazów mogą nieznacznie wydłużyć czas przetwarzania, ale znacznie skrócą całkowity czas trwania OCR. Znalezienie odpowiedniej równowagi zależy od jakości dokumentu.

W większości scenariuszy Input.Deskew() i Input.DeNoise() zapewniają niezawodne poprawki wydajności OCR. Dowiedz się więcej o technikach wstępnego przetwarzania obrazów.

Jak zoptymalizować wydajność i szybkość OCR?

Najważniejszym czynnikiem wpływającym na szybkość OCR podczas konwersji obrazów na tekst w języku C# jest jakość danych wejściowych. Wyższa rozdzielczość (około 200 dpi) przy minimalnym poziomie szumu zapewnia najszybsze i najdokładniejsze wyniki.

Chociaż IronOCR doskonale radzi sobie z poprawianiem dokumentów zawierających błędy, to ulepszenie wymaga dodatkowego czasu przetwarzania.

Wybierz formaty obrazów z minimalnymi artefaktami kompresji. Formaty TIFF i PNG zazwyczaj zapewniają szybsze wyniki niż JPEG ze względu na mniejszy poziom szumu cyfrowego.

Które filtry obrazu zwiększają szybkość OCR?

Następujące filtry mogą znacznie poprawić wydajność procesu przekształcania obrazów w tekst w języku C# przy użyciu OCR:

  • OcrInput.Rotate(double degrees): Obraca obrazy zgodnie z ruchem wskazówek zegara (w przeciwnym razie w lewo)
  • OcrInput.Binarize(): Konwertuje na czarno-biały, poprawiając wydajność w scenariuszach niskiego kontrastu
  • OcrInput.ToGrayScale(): Konwertuje na skale szarości dla potencjalnych przyspieszeń
  • OcrInput.Contrast(): Automatycznie dostosowuje kontrast dla lepszej dokładności
  • OcrInput.DeNoise(): Usuwa cyfrowe artefakty, gdy oczekuje się szumów
  • OcrInput.Invert(): Odwraca kolory dla białego tekstu na czarnym tle
  • OcrInput.Dilate(): Rozszerza granice tekstu
  • OcrInput.Erode(): Zmniejsza granice tekstu
  • OcrInput.Deskew(): Koryguje wyrównanie - niezbędne dla przekrzywionych dokumentów
  • OcrInput.DeepCleanBackgroundNoise(): Agresywne usuwanie szumów
  • OcrInput.EnhanceResolution: Poprawia jakość obrazów niskiej rozdzielczości
  • OcrInput.DetectPageOrientation(): Wykrywa i koryguje obrót strony. Przekaż OrientationDetectionMode, aby kontrolować kompromis między dokładnością a szybkością: Fast, Balanced, Detailed lub ExtremeDetailed (dodano v2025.8.6)

Scale() i EnhanceResolution() są niekompatybilne z SaveAsSearchablePdf() z powodu znanego problemu w wersji v2025.12.3. Wszystkie inne filtry działają poprawnie z przeszukiwalnym wyjściem PDF.

Jak skonfigurować IronOCR, aby uzyskać maksymalną prędkość?

Użyj tych ustawień, aby zoptymalizować szybkość przetwarzania skanów o wysokiej jakości:

using IronOcr;

// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();

// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";

// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;

using (OcrInput input = new OcrInput())
{
    // Load specific pages from document
    int[] pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Read with optimized settings
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;

// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();

// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";

// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;

using (OcrInput input = new OcrInput())
{
    // Load specific pages from document
    int[] pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

    // Read with optimized settings
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr

' Configure for speed - ideal for clean documents
Private ocr As New IronTesseract()

' Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\"

' Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto

' Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast

Using input As New OcrInput()
	' Load specific pages from document
	Dim pageIndices() As Integer = { 1, 2 }
	input.LoadImageFrames("img\Potter.tiff", pageIndices)

	' Read with optimized settings
	Dim result As OcrResult = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

Ta zoptymalizowana konfiguracja zapewnia 99,8% dokładności przy jednoczesnym 35-procentowym przyspieszeniu w porównaniu z ustawieniami domyślnymi.

Jak odczytywać określone obszary obrazów za pomocą OCR w języku C#?

Poniższy przykład C# Iron Tesseract pokazuje, jak celować w konkretne obszary przy użyciu System.Drawing.Rectangle. Technika ta jest nieoceniona przy przetwarzaniu standardowych formularzy, w których tekst pojawia się w przewidywalnych miejscach.

Czy IronOCR może przetwarzać przycięte obszary w celu uzyskania szybszych wyników?

Korzystając ze współrzędnych opartych na pikselach, można ograniczyć działanie OCR do określonych obszarów, co znacznie poprawia szybkość i zapobiega niepożądanemu wyodrębnianiu tekstu:

using IronOcr;
using IronSoftware.Drawing;

// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Define exact region for OCR - coordinates in pixels
    var contentArea = new System.Drawing.Rectangle(
        x: 215, 
        y: 1250, 
        width: 1335, 
        height: 280
    );

    // Load image with specific area - perfect for forms and invoices
    input.LoadImage("img/ComSci.png", contentArea);

    // Process only the defined region
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using IronSoftware.Drawing;

// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Define exact region for OCR - coordinates in pixels
    var contentArea = new System.Drawing.Rectangle(
        x: 215, 
        y: 1250, 
        width: 1335, 
        height: 280
    );

    // Load image with specific area - perfect for forms and invoices
    input.LoadImage("img/ComSci.png", contentArea);

    // Process only the defined region
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing

' Initialize OCR engine for targeted region processing
Dim ocr As New IronTesseract()

Using input As New OcrInput()
    ' Define exact region for OCR - coordinates in pixels
    Dim contentArea As New System.Drawing.Rectangle(215, 1250, 1335, 280)

    ' Load image with specific area - perfect for forms and invoices
    input.LoadImage("img/ComSci.png", contentArea)

    ' Process only the defined region
    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

To ukierunkowane podejście zapewnia 41% wzrost szybkości przy wyodrębnianiu wyłącznie istotnego tekstu. Idealnie nadaje się do dokumentów o ustalonej strukturze, takich jak faktury, czeki i formularze. Ta sama technika przycinania działa płynnie w operacjach OCR plików PDF.

Computer Science dokument pokazujący wyodrębnianie obszaru OCR w C# Dokument pokazujący precyzyjne wyodrębnianie tekstu na podstawie regionu przy użyciu zaznaczenia prostokątnego w IronOCR

Ile języków obsługuje IronOCR?

IronOCR oferuje 127 języków międzynarodowych w postaci wygodnych pakietów językowych. Pobierz je jako pliki DLL z naszej strony internetowej lub za pośrednictwem menedżera pakietów NuGet.

Zainstaluj pakiety językowe za pośrednictwem interfejsu NuGet (wyszukaj "IronOcr.Languages") lub odwiedź pełną listę pakietów językowych.

Obsługiwane języki to arabski, chiński (uproszczony/tradycyjny), japoński, koreański, hindi, rosyjski, niemiecki, francuski, hiszpański oraz ponad 115 innych, z których każdy jest zoptymalizowany pod kątem dokładnego rozpoznawania tekstu.

Jak wdrożyć OCR w wielu językach?

Ten przykładowy samouczek IronOCR w języku C# pokazuje rozpoznawanie tekstu arabskiego:

Install-Package IronOcr.Languages.Arabic
Tekst arabski przetwarzany przez IronOCR, demonstrujący obsługę wielojęzycznego OCR

IronOCR dokładnie wyodrębnia tekst arabski z obrazu GIF

// Install-Package IronOcr.Languages.Arabic
using IronOcr;

// Configure for Arabic language OCR
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    // Load Arabic text image
    input.LoadImage("img/arabic.gif");

    // IronOCR handles low-quality Arabic text that standard Tesseract cannot
    var result = ocr.Read(input);

    // Save to file (console may not display Arabic correctly)
    result.SaveAsTextFile("arabic.txt");
}
// Install-Package IronOcr.Languages.Arabic
using IronOcr;

// Configure for Arabic language OCR
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    // Load Arabic text image
    input.LoadImage("img/arabic.gif");

    // IronOCR handles low-quality Arabic text that standard Tesseract cannot
    var result = ocr.Read(input);

    // Save to file (console may not display Arabic correctly)
    result.SaveAsTextFile("arabic.txt");
}
Imports IronOcr

' Configure for Arabic language OCR
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.Arabic

Using input As New OcrInput()
    ' Load Arabic text image
    input.LoadImage("img/arabic.gif")

    ' IronOCR handles low-quality Arabic text that standard Tesseract cannot
    Dim result = ocr.Read(input)

    ' Save to file (console may not display Arabic correctly)
    result.SaveAsTextFile("arabic.txt")
End Using
$vbLabelText   $csharpLabel

Czy IronOCR obsługuje dokumenty w wielu językach?

Jeśli dokumenty zawierają różne języki, skonfiguruj IronOCR do obsługi wielu języków:

Install-Package IronOcr.Languages.ChineseSimplified
// Multi-language OCR configuration
using IronOcr;

var ocr = new IronTesseract();

// Set primary language
ocr.Language = OcrLanguage.ChineseSimplified;

// Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English);

// Custom .traineddata files can be added for specialized recognition
// ocr.AddSecondaryLanguage("path/to/custom.traineddata");

using (var input = new OcrInput())
{
    // Process multi-language document
    input.LoadImage("img/MultiLanguage.jpeg");

    var result = ocr.Read(input);
    result.SaveAsTextFile("MultiLanguage.txt");
}
// Multi-language OCR configuration
using IronOcr;

var ocr = new IronTesseract();

// Set primary language
ocr.Language = OcrLanguage.ChineseSimplified;

// Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English);

// Custom .traineddata files can be added for specialized recognition
// ocr.AddSecondaryLanguage("path/to/custom.traineddata");

using (var input = new OcrInput())
{
    // Process multi-language document
    input.LoadImage("img/MultiLanguage.jpeg");

    var result = ocr.Read(input);
    result.SaveAsTextFile("MultiLanguage.txt");
}
Imports IronOcr

' Multi-language OCR configuration
Dim ocr As New IronTesseract()

' Set primary language
ocr.Language = OcrLanguage.ChineseSimplified

' Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English)

' Custom .traineddata files can be added for specialized recognition
' ocr.AddSecondaryLanguage("path/to/custom.traineddata")

Using input As New OcrInput()
    ' Process multi-language document
    input.LoadImage("img/MultiLanguage.jpeg")

    Dim result = ocr.Read(input)
    result.SaveAsTextFile("MultiLanguage.txt")
End Using
$vbLabelText   $csharpLabel

Jak przetwarzać dokumenty wielostronicowe za pomocą OCR w języku C#?

IronOCR bezproblemowo łączy wiele stron lub obrazów w jeden OcrResult. Ta funkcja zapewnia zaawansowane możliwości, takie jak tworzenie plików PDF z funkcją wyszukiwania oraz wyodrębnianie tekstu z całych zestawów dokumentów.

Łącz i dopasowuj różne źródła — obrazy, ramki TIFF i strony PDF — w ramach jednej operacji OCR:

// Multi-source document processing
using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Add various image formats
    input.LoadImage("image1.jpeg");
    input.LoadImage("image2.png");

    // Process specific frames from multi-frame images
    int[] frameNumbers = { 1, 2 };
    input.LoadImageFrames("image3.gif", frameNumbers);

    // Process all sources together
    OcrResult result = ocr.Read(input);

    // Verify page count
    Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
// Multi-source document processing
using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Add various image formats
    input.LoadImage("image1.jpeg");
    input.LoadImage("image2.png");

    // Process specific frames from multi-frame images
    int[] frameNumbers = { 1, 2 };
    input.LoadImageFrames("image3.gif", frameNumbers);

    // Process all sources together
    OcrResult result = ocr.Read(input);

    // Verify page count
    Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
Imports IronOcr

' Multi-source document processing
Dim ocr As New IronTesseract()

Using input As New OcrInput()
    ' Add various image formats
    input.LoadImage("image1.jpeg")
    input.LoadImage("image2.png")

    ' Process specific frames from multi-frame images
    Dim frameNumbers As Integer() = {1, 2}
    input.LoadImageFrames("image3.gif", frameNumbers)

    ' Process all sources together
    Dim result As OcrResult = ocr.Read(input)

    ' Verify page count
    Console.WriteLine($"{result.Pages.Count} Pages processed.")
End Using
$vbLabelText   $csharpLabel

Wydajne przetwarzanie wszystkich stron pliku TIFF:

using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Define pages to process (0-based indexing)
    int[] pageIndices = new int[] { 0, 1 };

    // Load specific TIFF frames
    input.LoadImageFrames("MultiFrame.Tiff", pageIndices);

    // Extract text from all frames
    OcrResult result = ocr.Read(input);

    Console.WriteLine(result.Text);
    Console.WriteLine($"{result.Pages.Count} Pages processed");
}
using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Define pages to process (0-based indexing)
    int[] pageIndices = new int[] { 0, 1 };

    // Load specific TIFF frames
    input.LoadImageFrames("MultiFrame.Tiff", pageIndices);

    // Extract text from all frames
    OcrResult result = ocr.Read(input);

    Console.WriteLine(result.Text);
    Console.WriteLine($"{result.Pages.Count} Pages processed");
}
Imports IronOcr

Private ocr As New IronTesseract()

Using input As New OcrInput()
	' Define pages to process (0-based indexing)
	Dim pageIndices() As Integer = { 0, 1 }

	' Load specific TIFF frames
	input.LoadImageFrames("MultiFrame.Tiff", pageIndices)

	' Extract text from all frames
	Dim result As OcrResult = ocr.Read(input)

	Console.WriteLine(result.Text)
	Console.WriteLine($"{result.Pages.Count} Pages processed")
End Using
$vbLabelText   $csharpLabel

Konwertuj pliki TIFF lub PDF do formatów umożliwiających wyszukiwanie:

using System;
using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Set document metadata
    input.Title = "Quarterly Report";

    // Combine multiple sources
    input.LoadImage("image1.jpeg");
    input.LoadImage("image2.png");

    // Add specific frames from animated images
    int[] gifFrames = new int[] { 1, 2 };
    input.LoadImageFrames("image3.gif", gifFrames);

    // Create searchable PDF
    OcrResult result = ocr.Read(input);

    // Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
    result.SaveAsSearchablePdf("searchable.pdf", true);
}
using System;
using IronOcr;

IronTesseract ocr = new IronTesseract();

using (OcrInput input = new OcrInput())
{
    // Set document metadata
    input.Title = "Quarterly Report";

    // Combine multiple sources
    input.LoadImage("image1.jpeg");
    input.LoadImage("image2.png");

    // Add specific frames from animated images
    int[] gifFrames = new int[] { 1, 2 };
    input.LoadImageFrames("image3.gif", gifFrames);

    // Create searchable PDF
    OcrResult result = ocr.Read(input);

    // Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
    result.SaveAsSearchablePdf("searchable.pdf", true);
}
Imports System
Imports IronOcr

Dim ocr As New IronTesseract()

Using input As New OcrInput()
    ' Set document metadata
    input.Title = "Quarterly Report"

    ' Combine multiple sources
    input.LoadImage("image1.jpeg")
    input.LoadImage("image2.png")

    ' Add specific frames from animated images
    Dim gifFrames As Integer() = {1, 2}
    input.LoadImageFrames("image3.gif", gifFrames)

    ' Create searchable PDF
    Dim result As OcrResult = ocr.Read(input)

    ' Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
    result.SaveAsSearchablePdf("searchable.pdf", True)
End Using
$vbLabelText   $csharpLabel

Konwersja istniejących plików PDF do wersji z możliwością wyszukiwania:

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Set PDF metadata
    input.Title = "Annual Report 2024";

    // Process existing PDF
    input.LoadPdf("example.pdf", "password");

    // Generate searchable version
    var result = ocr.Read(input);
    result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Set PDF metadata
    input.Title = "Annual Report 2024";

    // Process existing PDF
    input.LoadPdf("example.pdf", "password");

    // Generate searchable version
    var result = ocr.Read(input);
    result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrInput()
	' Set PDF metadata
	input.Title = "Annual Report 2024"

	' Process existing PDF
	input.LoadPdf("example.pdf", "password")

	' Generate searchable version
	Dim result = ocr.Read(input)
	result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

Zastosuj tę samą technikę do konwersji plików TIFF:

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Configure document properties
    input.Title = "Scanned Archive Document";

    // Select pages to process
    var pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames("example.tiff", pageIndices);

    // Create searchable PDF from TIFF
    OcrResult result = ocr.Read(input);
    result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Configure document properties
    input.Title = "Scanned Archive Document";

    // Select pages to process
    var pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames("example.tiff", pageIndices);

    // Create searchable PDF from TIFF
    OcrResult result = ocr.Read(input);
    result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrInput()
	' Configure document properties
	input.Title = "Scanned Archive Document"

	' Select pages to process
	Dim pageIndices = New Integer() { 1, 2 }
	input.LoadImageFrames("example.tiff", pageIndices)

	' Create searchable PDF from TIFF
	Dim result As OcrResult = ocr.Read(input)
	result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

Jak wyeksportować wyniki OCR jako HOCR HTML?

IronOCR obsługuje eksport HOCR HTML, umożliwiając konwersję plików PDF o strukturze do formatu HTML oraz plików TIFF do formatu HTML przy zachowaniu informacji o układzie:

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Set HTML title
    input.Title = "Document Archive";

    // Process multiple document types
    input.LoadImage("image2.jpeg");
    input.LoadPdf("example.pdf", "password");

    // Add TIFF pages
    var pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames("example.tiff", pageIndices);

    // Export as HOCR with position data
    OcrResult result = ocr.Read(input);
    result.SaveAsHocrFile("hocr.html");
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    // Set HTML title
    input.Title = "Document Archive";

    // Process multiple document types
    input.LoadImage("image2.jpeg");
    input.LoadPdf("example.pdf", "password");

    // Add TIFF pages
    var pageIndices = new int[] { 1, 2 };
    input.LoadImageFrames("example.tiff", pageIndices);

    // Export as HOCR with position data
    OcrResult result = ocr.Read(input);
    result.SaveAsHocrFile("hocr.html");
}
Imports IronOcr

Dim ocr As New IronTesseract()

Using input As New OcrInput()
    ' Set HTML title
    input.Title = "Document Archive"

    ' Process multiple document types
    input.LoadImage("image2.jpeg")
    input.LoadPdf("example.pdf", "password")

    ' Add TIFF pages
    Dim pageIndices As Integer() = {1, 2}
    input.LoadImageFrames("example.tiff", pageIndices)

    ' Export as HOCR with position data
    Dim result As OcrResult = ocr.Read(input)
    result.SaveAsHocrFile("hocr.html")
End Using
$vbLabelText   $csharpLabel

Czy IronOCR może odczytywać BarCodes wraz z tekstem?

IronOCR w unikalny sposób łączy rozpoznawanie tekstu z możliwością odczytu kodów kreskowych, eliminując potrzebę stosowania oddzielnych bibliotek:

// Enable combined text and barcode recognition
using IronOcr;

var ocr = new IronTesseract();

// Enable barcode detection
ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    // Load image containing both text and barcodes
    input.LoadImage("img/Barcode.png");

    // Process both text and barcodes
    var result = ocr.Read(input);

    // Extract barcode data
    foreach (var barcode in result.Barcodes)
    {
        Console.WriteLine($"Barcode Value: {barcode.Value}");
        Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}");
    }
}
// Enable combined text and barcode recognition
using IronOcr;

var ocr = new IronTesseract();

// Enable barcode detection
ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    // Load image containing both text and barcodes
    input.LoadImage("img/Barcode.png");

    // Process both text and barcodes
    var result = ocr.Read(input);

    // Extract barcode data
    foreach (var barcode in result.Barcodes)
    {
        Console.WriteLine($"Barcode Value: {barcode.Value}");
        Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}");
    }
}
Imports IronOcr

Dim ocr As New IronTesseract()

' Enable barcode detection
ocr.Configuration.ReadBarCodes = True

Using input As New OcrInput()
    ' Load image containing both text and barcodes
    input.LoadImage("img/Barcode.png")

    ' Process both text and barcodes
    Dim result = ocr.Read(input)

    ' Extract barcode data
    For Each barcode In result.Barcodes
        Console.WriteLine($"Barcode Value: {barcode.Value}")
        Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}")
    Next
End Using
$vbLabelText   $csharpLabel

Jak uzyskać dostęp do szczegółowych wyników OCR i metadanych?

Obiekt wyników IronOCR dostarcza kompleksowych danych, które zaawansowani programiści mogą wykorzystać w zaawansowanych aplikacjach.

Każdy OcrResult zawiera hierarchiczne kolekcje: strony, akapity, linie, słowa i znaki. Wszystkie elementy zawierają szczegółowe metadane, takie jak lokalizacja, informacje o czcionkach i wskaźniki pewności.

Poszczególne elementy (akapity, słowa, BarCodes) można eksportować jako obrazy lub mapy bitowe w celu dalszego przetwarzania:

using System;
using IronOcr;
using IronSoftware.Drawing;

// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
    Configuration = { ReadBarCodes = true }
};

using OcrInput input = new OcrInput();

// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

OcrResult result = ocr.Read(input);

// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
    // Page-level data
    int pageNumber = page.PageNumber;
    string pageText = page.Text;
    int pageWordCount = page.WordCount;

    // Extract page elements
    OcrResult.Barcode[] barcodes = page.Barcodes;
    AnyBitmap pageImage = page.ToBitmap();
    double pageWidth = page.Width;
    double pageHeight = page.Height;

    foreach (var paragraph in page.Paragraphs)
    {
        // Paragraph properties
        int paragraphNumber = paragraph.ParagraphNumber;
        string paragraphText = paragraph.Text;
        double paragraphConfidence = paragraph.Confidence;
        var textDirection = paragraph.TextDirection;

        foreach (var line in paragraph.Lines)
        {
            // Line details including baseline information
            string lineText = line.Text;
            double lineConfidence = line.Confidence;
            double baselineAngle = line.BaselineAngle;
            double baselineOffset = line.BaselineOffset;

            foreach (var word in line.Words)
            {
                // Word-level data
                string wordText = word.Text;
                double wordConfidence = word.Confidence;

                // Font information (when available)
                if (word.Font != null)
                {
                    string fontName = word.Font.FontName;
                    double fontSize = word.Font.FontSize;
                    bool isBold = word.Font.IsBold;
                    bool isItalic = word.Font.IsItalic;
                }

                foreach (var character in word.Characters)
                {
                    // Character-level analysis
                    string charText = character.Text;
                    double charConfidence = character.Confidence;

                    // Alternative character choices for spell-checking
                    OcrResult.Choice[] alternatives = character.Choices;
                }
            }
        }
    }
}
using System;
using IronOcr;
using IronSoftware.Drawing;

// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
    Configuration = { ReadBarCodes = true }
};

using OcrInput input = new OcrInput();

// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);

OcrResult result = ocr.Read(input);

// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
    // Page-level data
    int pageNumber = page.PageNumber;
    string pageText = page.Text;
    int pageWordCount = page.WordCount;

    // Extract page elements
    OcrResult.Barcode[] barcodes = page.Barcodes;
    AnyBitmap pageImage = page.ToBitmap();
    double pageWidth = page.Width;
    double pageHeight = page.Height;

    foreach (var paragraph in page.Paragraphs)
    {
        // Paragraph properties
        int paragraphNumber = paragraph.ParagraphNumber;
        string paragraphText = paragraph.Text;
        double paragraphConfidence = paragraph.Confidence;
        var textDirection = paragraph.TextDirection;

        foreach (var line in paragraph.Lines)
        {
            // Line details including baseline information
            string lineText = line.Text;
            double lineConfidence = line.Confidence;
            double baselineAngle = line.BaselineAngle;
            double baselineOffset = line.BaselineOffset;

            foreach (var word in line.Words)
            {
                // Word-level data
                string wordText = word.Text;
                double wordConfidence = word.Confidence;

                // Font information (when available)
                if (word.Font != null)
                {
                    string fontName = word.Font.FontName;
                    double fontSize = word.Font.FontSize;
                    bool isBold = word.Font.IsBold;
                    bool isItalic = word.Font.IsItalic;
                }

                foreach (var character in word.Characters)
                {
                    // Character-level analysis
                    string charText = character.Text;
                    double charConfidence = character.Confidence;

                    // Alternative character choices for spell-checking
                    OcrResult.Choice[] alternatives = character.Choices;
                }
            }
        }
    }
}
Imports System
Imports IronOcr
Imports IronSoftware.Drawing

' Configure with barcode support
Private ocr As New IronTesseract With {
	.Configuration = { ReadBarCodes = True }
}

Private OcrInput As using

' Process multi-page document
Private pageIndices() As Integer = { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageIndices)

Dim result As OcrResult = ocr.Read(input)

' Navigate the complete results hierarchy
For Each page In result.Pages
	' Page-level data
	Dim pageNumber As Integer = page.PageNumber
	Dim pageText As String = page.Text
	Dim pageWordCount As Integer = page.WordCount

	' Extract page elements
	Dim barcodes() As OcrResult.Barcode = page.Barcodes
	Dim pageImage As AnyBitmap = page.ToBitmap()
	Dim pageWidth As Double = page.Width
	Dim pageHeight As Double = page.Height

	For Each paragraph In page.Paragraphs
		' Paragraph properties
		Dim paragraphNumber As Integer = paragraph.ParagraphNumber
		Dim paragraphText As String = paragraph.Text
		Dim paragraphConfidence As Double = paragraph.Confidence
		Dim textDirection = paragraph.TextDirection

		For Each line In paragraph.Lines
			' Line details including baseline information
			Dim lineText As String = line.Text
			Dim lineConfidence As Double = line.Confidence
			Dim baselineAngle As Double = line.BaselineAngle
			Dim baselineOffset As Double = line.BaselineOffset

			For Each word In line.Words
				' Word-level data
				Dim wordText As String = word.Text
				Dim wordConfidence As Double = word.Confidence

				' Font information (when available)
				If word.Font IsNot Nothing Then
					Dim fontName As String = word.Font.FontName
					Dim fontSize As Double = word.Font.FontSize
					Dim isBold As Boolean = word.Font.IsBold
					Dim isItalic As Boolean = word.Font.IsItalic
				End If

				For Each character In word.Characters
					' Character-level analysis
					Dim charText As String = character.Text
					Dim charConfidence As Double = character.Confidence

					' Alternative character choices for spell-checking
					Dim alternatives() As OcrResult.Choice = character.Choices
				Next character
			Next word
		Next line
	Next paragraph
Next page
$vbLabelText   $csharpLabel

Podsumowanie

IronOCR zapewnia programistom C# najbardziej zaawansowaną implementację API Tesseract, działającą płynnie na platformach Windows, Linux i Mac. Możliwość dokładnego odczytu tekstu z obrazu za pomocą IronOCR — nawet z dokumentów o niskiej jakości — wyróżnia to rozwiązanie spośród podstawowych rozwiązań OCR.

Unikalne funkcje biblioteki obejmują zintegrowane odczytywanie kodów BarCode oraz możliwość eksportowania wyników jako pliki PDF z funkcją wyszukiwania lub HOCR HTML, co nie jest dostępne w standardowych implementacjach Tesseract.

Kolejne kroki

Aby kontynuować naukę obsługi IronOCR:

Pobierz kod źródłowy

Gotowy do wdrożenia konwersji obrazu OCR C# na tekst w swoich aplikacjach? Pobierz IronOCR i rozpocznij swoją bezpłatną wersję próbną już dzisiaj.

Często Zadawane Pytania

Jak mogę przekonwertować obrazy na tekst w języku C# bez użycia Tesseract?

Możesz użyć IronOCR do konwersji obrazów na tekst w języku C# bez konieczności korzystania z Tesseract. IronOCR upraszcza ten proces dzięki wbudowanym metodom, które bezpośrednio obsługują konwersję obrazu na tekst.

Jak poprawić dokładność OCR w przypadku obrazów o niskiej jakości?

IronOCR udostępnia filtry obrazu, takie jak Input.Deskew() i Input.DeNoise(), które można wykorzystać do poprawy jakości obrazów o niskiej rozdzielczości poprzez korekcję przekrzywienia i redukcję szumów, co znacznie poprawia dokładność OCR.

Jakie kroki należy wykonać, aby wyodrębnić tekst z wielostronicowego dokumentu przy użyciu OCR w języku C#?

Aby wyodrębnić tekst z dokumentów wielostronicowych, IronOCR umożliwia ładowanie i przetwarzanie każdej strony przy użyciu metod takich jak LoadPdf() dla plików PDF lub obsługi plików TIFF, skutecznie konwertując każdą stronę na tekst.

Czy możliwe jest jednoczesne odczytywanie BARCODE-ów i tekstu z obrazu?

Tak, IronOCR może odczytywać zarówno tekst, jak i BarCodes z jednego obrazu. Odczyt BarCodes można włączyć za pomocą OCR.Configuration.ReadBarCodes = true, co pozwala na wyodrębnianie zarówno danych tekstowych, jak i danych z BarCodes.

Jak skonfigurować OCR do przetwarzania dokumentów w wielu językach?

IronOCR obsługuje ponad 125 języków i pozwala ustawić język podstawowy za pomocą OCR.Language oraz dodać dodatkowe języki za pomocą OCR.AddSecondaryLanguage() w celu przetwarzania dokumentów wielojęzycznych.

Jakie metody są dostępne do eksportowania wyników OCR w różnych formatach?

IronOCR oferuje kilka metod eksportowania wyników OCR, takich jak SaveAsSearchablePdf() dla plików PDF, SaveAsTextFile() dla zwykłego tekstu oraz SaveAsHocrFile() dla formatu HOCR HTML.

Jak mogę zoptymalizować szybkość przetwarzania OCR w przypadku dużych plików graficznych?

Aby zoptymalizować szybkość przetwarzania OCR, należy użyć funkcji OcrLanguage.EnglishFast biblioteki IronOCR w celu szybszego rozpoznawania języka oraz zdefiniować konkretne obszary do OCR za pomocą System.Drawing.Rectangle, aby skrócić czas przetwarzania.

Jak poradzić sobie z przetwarzaniem OCR w przypadku chronionych plików PDF?

W przypadku plików PDF z zabezpieczeniami należy użyć metody LoadPdf() wraz z prawidłowym hasłem. IronOCR obsługuje pliki PDF oparte na obrazach, automatycznie konwertując strony na obrazy w celu przetworzenia przez OCR.

Co należy zrobić, jeśli wyniki OCR są niedokładne?

Jeśli wyniki OCR są niedokładne, rozważ użycie funkcji poprawy jakości obrazu IronOCR, takich jak Input.Deskew() i Input.DeNoise(), oraz upewnij się, że zainstalowane są odpowiednie pakiety językowe.

Czy mogę dostosować proces OCR, aby wykluczyć określone znaki?

Tak, IronOCR umożliwia dostosowanie procesu OCR za pomocą właściwości BlackListCharacters w celu wykluczenia określonych znaków, co poprawia dokładność i szybkość przetwarzania poprzez skupienie się wyłącznie na istotnym tekście.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej
Sprawdzone przez
Jeff Fritz
Jeffrey T. Fritz
Główny Menedżer Programu - Zespół .NET Community
Jeff jest również Głównym Menedżerem Programu dla zespołów .NET i Visual Studio. Jest producentem wykonawczym wirtualnej serii konferencji .NET Conf i prowadzi 'Fritz and Friends', transmisję na żywo dla deweloperów emitowaną dwa razy w tygodniu, gdzie rozmawia o technologii i pisze kod razem z widzami. Jeff pisze warsztaty, prezentacje i planuje treści dla największych wydarzeń Microsoft dla deweloperów, w tym Microsoft Build, Microsoft Ignite, .NET Conf i Microsoft MVP Summit.
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 5,571,678 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.