IRONSOFTWAREHOME

Jak uzyskać pewność odczytu OCR w języku C# za pomocą IronOCR

Curtis Chau
Curtis Chau
Updated: 4 czerwca 2026

Poziom zaufania do odczytów IronOCR pokazuje, jak pewny system OCR jest co do dokładności rozpoznanego tekstu, z wartościami od 0 do 100, gdzie wyższe wyniki oznaczają większą niezawodność—dostęp do niego można uzyskać przez właściwość Confidence na dowolnym obiekcie OcrResult.

Pewność odczytu w OCR (Optical Character Recognition) odnosi się do poziomu pewności lub wiarygodności, jaki system OCR przypisuje dokładności tekstu rozpoznanego na obrazie lub w dokumencie. Jest to miara tego, na ile system OCR jest pewny, że rozpoznany tekst jest poprawny. Wskaźnik ten staje się szczególnie ważny podczas przetwarzania zeskanowanych dokumentów, zdjęć lub wszelkich obrazów, w których jakość tekstu może się różnić.

Wysoki wynik pewności wskazuje na wysoki stopień pewności, że rozpoznanie jest dokładne, natomiast niski wynik pewności sugeruje, że rozpoznanie może być mniej wiarygodne. Zrozumienie tych poziomów pewności pomaga programistom wdrażać odpowiednią logikę walidacji i obsługę błędów w swoich aplikacjach.

Szybki start: Uzyskaj pewność odczytu OCR w jednym wierszu

Użyj metody Read klasy IronTesseract z ścieżką do pliku obrazu, a następnie uzyskaj dostęp do właściwości Confidence na zwróconym obiekcie OcrResult, aby zobaczyć, jak pewny jest IronOCR co do swojego rozpoznania tekstu. To prosty i niezawodny sposób na rozpoczęcie oceny dokładności wyników OCR.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Skopiuj i uruchom ten fragment kodu.

    double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence;
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

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

Jak uzyskać pewność czytania w języku C#?

Po wykonaniu OCR na obrazie wejściowym, poziom zaufania co do tekstu jest przechowywany w właściwości Confidence. Użyj instrukcji "using", aby automatycznie usuwać obiekty po ich użyciu. Dodaj dokumenty takie jak obrazy i PDF-y za pomocą klas OcrImageInput i OcrPdfInput odpowiednio. Metoda Read zwróci obiekt OcrResult, który pozwala na dostęp do właściwości Confidence.

using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Get confidence level
double confidence = ocrResult.Confidence;

Zwracana wartość pewności mieści się w przedziale od 0 do 100, gdzie:

  • 90-100: Doskonała pewność – tekst jest wysoce wiarygodny
  • 80-89: Dobry poziom pewności – tekst jest ogólnie poprawny, z niewielkimi niejasnościami
  • 70–79: Umiarkowana pewność – tekst może zawierać pewne błędy
  • Poniżej 70: Niski poziom pewności – tekst powinien zostać sprawdzony lub ponownie przetworzony

Jak mogę nabrać pewności siebie na różnych poziomach?

Można nie tylko uzyskać poziom pewności dla całego dokumentu, ale także uzyskać dostęp do poziomów pewności dla każdej strony, akapitu, wiersza, słowa i znaku. Ponadto można uzyskać pewność co do bloku, który stanowi zbiór jednego lub więcej akapitów znajdujących się blisko siebie.

// Get page confidence level
double pageConfidence = ocrResult.Pages[0].Confidence;

// Get paragraph confidence level
double paragraphConfidence = ocrResult.Paragraphs[0].Confidence;

// Get line confidence level
double lineConfidence = ocrResult.Lines[0].Confidence;

// Get word confidence level
double wordConfidence = ocrResult.Words[0].Confidence;

// Get character confidence level
double characterConfidence = ocrResult.Characters[0].Confidence;

// Get block confidence level
double blockConfidence = ocrResult.Blocks[0].Confidence;

Praktyczny przykład: Filtrowanie według poziomu pewności

Podczas przetwarzania dokumentów o różnej jakości, takich jak skany niskiej jakości, można użyć wskaźników pewności, aby filtrować wyniki:

using IronOcr;
using System.Linq;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Add image
using var imageInput = new OcrImageInput("invoice.png");
// Apply filters to improve quality
imageInput.Deskew();
imageInput.DeNoise();

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Filter words with confidence above 85%
var highConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence >= 85)
    .Select(word => word.Text)
    .ToList();

// Process only high-confidence text
string reliableText = string.Join(" ", highConfidenceWords);
Console.WriteLine($"High confidence text: {reliableText}");

// Flag low-confidence words for manual review
var lowConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence < 85)
    .Select(word => new { word.Text, word.Confidence })
    .ToList();

foreach (var word in lowConfidenceWords)
{
    Console.WriteLine($"Review needed: '{word.Text}' (Confidence: {word.Confidence:F2}%)");
}

Jakie są opcje znaków w OCR?

Oprócz poziomu zaufania istnieje inna interesująca właściwość o nazwie Choices. Opcje zawierają listę alternatywnych słów oraz ich statystyczną trafność. Te informacje pozwalają użytkownikowi uzyskać dostęp do innych możliwych znaków. Funkcja ta jest szczególnie przydatna przy pracy z wieloma językami lub specjalizowanymi czcionkami.

using IronOcr;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Get choices
Choice[] choices = ocrResult.Characters[0].Choices;

Jak Alternatywne Wybory Znaków Pomagają?

Alternatywne wybory znaków oferują kilka korzyści:

  1. Rozwiązanie niejednoznaczności: Kiedy mylą się znaki takie jak 'O' i '0', lub 'l' i '1'
  2. Wariacje czcionek: Różne interpretacje dla stylizowanych lub dekoracyjnych czcionek
  3. Problemy z jakością: Wielość możliwości przy przetwarzaniu zdegradowanego tekstu
  4. Kontekst Językowy: Alternatywne interpretacje bazujące na zasadach językowych
Widok debugowania wyborów znaków OCR pokazujący oceny pewności i wyniki rozpoznawania tekstu dla 'Chapter Eight'

Praca z Wyborem Znaków

Oto kompleksowy przykład pokazujący, jak używać wyboru znaków dla poprawienia dokładności:

using IronOcr;
using System;
using System.Linq;
using static IronOcr.OcrResult;

// Configure IronTesseract for detailed results
IronTesseract ocrTesseract = new IronTesseract();

// Process image with potential ambiguities
using var imageInput = new OcrImageInput("ambiguous_text.png");
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Analyze character choices for each word
foreach (var word in ocrResult.Words)
{
    Console.WriteLine($"\nWord: '{word.Text}' (Confidence: {word.Confidence:F2}%)");
    
    // Check each character in the word
    foreach (var character in word.Characters)
    {
        if (character.Choices != null && character.Choices.Length > 1)
        {
            Console.WriteLine($"  Character '{character.Text}' has alternatives:");
            
            // Display all choices sorted by confidence
            foreach (var choice in character.Choices.OrderByDescending(c => c.Confidence))
            {
                Console.WriteLine($"    - '{choice.Text}': {choice.Confidence:F2}%");
            }
        }
    }
}

Zaawansowane Strategie Pewności

Przy pracy z wyspecjalizowanymi dokumentami jak paszporty, tablice rejestracyjne lub czeki MICR, oceny pewności stają się kluczowe dla walidacji:

using IronOcr;

public class DocumentValidator
{
    private readonly IronTesseract ocr = new IronTesseract();
    
    public bool ValidatePassportNumber(string imagePath, double minConfidence = 95.0)
    {
        using var input = new OcrImageInput(imagePath);
        
        // Configure for passport reading
        ocr.Configuration.ReadBarCodes = true;
        ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleLine;
        
        // Apply preprocessing
        input.Deskew();
        input.Scale(200); // Upscale for better accuracy
        
        var result = ocr.Read(input);
        
        // Find passport number pattern
        var passportLine = result.Lines
            .Where(line => line.Text.Contains("P<") || IsPassportNumberFormat(line.Text))
            .FirstOrDefault();
        
        if (passportLine != null)
        {
            Console.WriteLine($"Passport line found: {passportLine.Text}");
            Console.WriteLine($"Confidence: {passportLine.Confidence:F2}%");
            
            // Only accept if confidence meets threshold
            return passportLine.Confidence >= minConfidence;
        }
        
        return false;
    }
    
    private bool IsPassportNumberFormat(string text)
    {
        // Simple passport number validation
        return System.Text.RegularExpressions.Regex.IsMatch(text, @"^[A-Z]\d{7,9}$");
    }
}

Optymalizacja dla Lepszej Pewności

Aby uzyskać wyższe oceny pewności, rozważ użycie filtrów obrazu i technik preprocessingowych:

using IronOcr;

// Create an optimized OCR workflow
IronTesseract ocr = new IronTesseract();

using var input = new OcrImageInput("low_quality_scan.jpg");

// Apply multiple filters to improve confidence
input.Deskew();           // Correct rotation
input.DeNoise();          // Remove noise
input.Sharpen();          // Enhance edges
input.Dilate();           // Thicken text
input.Scale(150);         // Upscale for clarity

// Configure for accuracy over speed
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
ocr.Configuration.EngineMode = TesseractEngineMode.TesseractOnly;

var result = ocr.Read(input);

Console.WriteLine($"Document confidence: {result.Confidence:F2}%");

// Generate confidence report
var confidenceReport = result.Pages
    .Select((page, index) => new
    {
        PageNumber = index + 1,
        Confidence = page.Confidence,
        WordCount = page.Words.Length,
        LowConfidenceWords = page.Words.Count(w => w.Confidence < 80)
    });

foreach (var page in confidenceReport)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Confidence:F2}% confidence");
    Console.WriteLine($"  Total words: {page.WordCount}");
    Console.WriteLine($"  Low confidence words: {page.LowConfidenceWords}");
}

Podsumowanie

Zrozumienie i wykorzystywanie ocen pewności OCR jest niezbędne do budowania solidnych aplikacji do przetwarzania dokumentów. Wykorzystując właściwości pewności IronOCR i wybory znaków, programiści mogą wdrożyć inteligentną walidację, obsługę błędów i mechanizmy zapewnienia jakości w ich przepływach pracy OCR. Niezależnie od tego, czy przetwarzasz zrzuty ekranowe, tabele, czy wyspecjalizowane dokumenty, oceny pewności dostarczają metryki potrzebne do zapewnienia dokładnego wyodrębniania tekstu.

Często Zadawane Pytania

Czym jest wskaźnik pewności OCR i dlaczego jest ważny?

Wskaźnik pewności OCR to miara w skali od 0 do 100, wskazująca, na ile system OCR jest pewny co do dokładności rozpoznawania tekstu. IronOCR udostępnia ten wskaźnik poprzez właściwość Confidence w każdym obiekcie OcrResult, pomagając programistom ocenić wiarygodność rozpoznanego tekstu, zwłaszcza podczas przetwarzania zeskanowanych dokumentów, zdjęć lub obrazów o różnej jakości tekstu.

Jak szybko sprawdzić poziom pewności OCR w języku C#?

Dzięki IronOCR można uzyskać pewność rozpoznania OCR za pomocą zaledwie jednej linii kodu: double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence; Zwraca to wynik pewności w skali od 0 do 100, wskazujący, na ile IronOCR jest pewny rozpoznania tekstu.

Co oznaczają różne przedziały wyników pewności?

Wyniki zaufania IronOCR oznaczają: 90–100 (doskonałe) oznacza, że tekst jest bardzo wiarygodny; 80–89 (dobre) oznacza, że tekst jest ogólnie dokładny, z niewielkimi niepewnościami; 70–79 (umiarkowane) oznacza, że tekst może zawierać pewne błędy; poniżej 70 (niskie) oznacza, że tekst powinien zostać sprawdzony lub ponownie przetworzony.

Jak uzyskać dostęp do poziomów pewności dla różnych elementów tekstu?

IronOCR pozwala uzyskać poziomy pewności na wielu poziomach szczegółowości — stron, akapitów, wierszy, słów i poszczególnych znaków. Po wykonaniu OCR można uzyskać dostęp do właściwości Confidence na każdym poziomie poprzez strukturę obiektu OcrResult.

Czy mogę otrzymać propozycje alternatywnych słów wraz z oceną pewności?

Tak, IronOCR udostępnia właściwość Choices, która oferuje alternatywne propozycje słów wraz z ich wynikami pewności. Ta funkcja jest pomocna, gdy silnik OCR identyfikuje wiele możliwych interpretacji tego samego tekstu, umożliwiając wdrożenie inteligentnej logiki walidacji.

Jak zaimplementować walidację opartą na poziomie pewności w mojej aplikacji?

Po użyciu metody Read biblioteki IronOCR sprawdź właściwość Confidence obiektu OcrResult. Zastosuj logikę warunkową opartą na progach pewności — na przykład automatycznie akceptuj wyniki powyżej 90, oznaczaj wyniki w przedziale 70–90 do weryfikacji oraz ponownie przetwarzaj lub ręcznie weryfikuj wyniki poniżej 70.

What are character choices in IronOCR?

Character choices in IronOCR refer to alternative word choices and their relevance metrics provided during OCR. This feature is useful for handling ambiguities and understanding potential character variations in the text.

How can character choices aid in text recognition?

Character choices help resolve ambiguities by offering alternative interpretations for similar-looking characters and words. This is particularly beneficial when dealing with font variations, degraded text, and multiple languages.

What preprocessing techniques improve IronOCR text accuracy?

Preprocessing techniques such as deskewing, denoising, sharpening, and scaling can significantly enhance text accuracy by improving image quality before executing OCR processes with IronOCR.

How does IronOCR handle low confidence recognition results?

IronOCR allows you to filter and flag low-confidence recognition results for review. You can identify words with confidence scores below a certain threshold and address uncertainties by using validation or reprocessing strategies.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 6,236,385Wersja:2026.9właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i szukaj „IronOCR”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz Instalator Windows tutaj.

  1. Pobierz i rozpakuj IronOCR do lokalizacji, takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań Visual Studio kliknij prawym przyciskiem myszy Odwołania. Wybierz Przeglądaj, „IronOCR.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta