Jak używać wartości pewności Tesseract OCR w C# | IronOCR

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

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

Pewność odczytu IronOCR wskazuje, jak bardzo system OCR jest pewny dokładności rozpoznanego tekstu, z wartościami od 0 do 100, gdzie wyższe wyniki oznaczają większą niezawodność – dostęp do niej można uzyskać przez właściwość Confidence dowolnego obiektu 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 IronTesseract z ścieżką do pliku obrazu, a następnie uzyskaj dostęp do właściwości Confidence zwróconego OcrResult, aby sprawdzić, jak pewny jest IronOCR w rozpoznawaniu tekstu. To prosty i niezawodny sposób na rozpoczęcie oceny dokładności wyników OCR.

  1. Install IronOCR with NuGet Package Manager

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

    double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence;
  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 uzyskać pewność czytania w języku C#?

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

:path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-get-confidence.cs
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;
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.tiff")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Get confidence level
Private confidence As Double = ocrResult.Confidence
$vbLabelText   $csharpLabel

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.

:path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-confidence-level.cs
// 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;
' Get page confidence level
Dim pageConfidence As Double = ocrResult.Pages(0).Confidence

' Get paragraph confidence level
Dim paragraphConfidence As Double = ocrResult.Paragraphs(0).Confidence

' Get line confidence level
Dim lineConfidence As Double = ocrResult.Lines(0).Confidence

' Get word confidence level
Dim wordConfidence As Double = ocrResult.Words(0).Confidence

' Get character confidence level
Dim characterConfidence As Double = ocrResult.Characters(0).Confidence

' Get block confidence level
Dim blockConfidence As Double = ocrResult.Blocks(0).Confidence
$vbLabelText   $csharpLabel

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}%)");
}
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}%)");
}
Imports IronOcr
Imports System.Linq

' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()

' Configure for better accuracy
ocrTesseract.Configuration.ReadBarCodes = False
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Add image
Using imageInput As New OcrImageInput("invoice.png")
    ' Apply filters to improve quality
    imageInput.Deskew()
    imageInput.DeNoise()

    ' Perform OCR
    Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

    ' Filter words with confidence above 85%
    Dim highConfidenceWords = ocrResult.Words _
        .Where(Function(word) word.Confidence >= 85) _
        .Select(Function(word) word.Text) _
        .ToList()

    ' Process only high-confidence text
    Dim reliableText As String = String.Join(" ", highConfidenceWords)
    Console.WriteLine($"High confidence text: {reliableText}")

    ' Flag low-confidence words for manual review
    Dim lowConfidenceWords = ocrResult.Words _
        .Where(Function(word) word.Confidence < 85) _
        .Select(Function(word) New With {Key .Text = word.Text, Key .Confidence = word.Confidence}) _
        .ToList()

    For Each word In lowConfidenceWords
        Console.WriteLine($"Review needed: '{word.Text}' (Confidence: {word.Confidence:F2}%)")
    Next
End Using
$vbLabelText   $csharpLabel

Jakie są opcje znaków w OCR?

Oprócz poziomu pewności istnieje jeszcze jedna 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.

:path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-get-choices.cs
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;
Imports IronOcr
Imports IronOcr.OcrResult

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("Potter.tiff")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Get choices
Private choices() As Choice = ocrResult.Characters(0).Choices
$vbLabelText   $csharpLabel

Jak Alternatywne Wybory Znaków Pomagają?

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

  1. Rozwiązywanie Niejasności: Gdy znaki takie jak 'O' i '0', lub 'l' i '1' są mylone
  2. Wariacje Czcionki: Różne interpretacje dla stylizowanych lub dekoracyjnych czcionek
  3. Problemy z Jakością: Wiele możliwości przy obsłudze 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}%");
            }
        }
    }
}
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}%");
            }
        }
    }
}
Imports IronOcr
Imports System
Imports System.Linq
Imports IronOcr.OcrResult

' Configure IronTesseract for detailed results
Dim ocrTesseract As New IronTesseract()

' Process image with potential ambiguities
Using imageInput As New OcrImageInput("ambiguous_text.png")
    Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

    ' Analyze character choices for each word
    For Each word In ocrResult.Words
        Console.WriteLine(vbCrLf & $"Word: '{word.Text}' (Confidence: {word.Confidence:F2}%)")

        ' Check each character in the word
        For Each character In word.Characters
            If character.Choices IsNot Nothing AndAlso character.Choices.Length > 1 Then
                Console.WriteLine($"  Character '{character.Text}' has alternatives:")

                ' Display all choices sorted by confidence
                For Each choice In character.Choices.OrderByDescending(Function(c) c.Confidence)
                    Console.WriteLine($"    - '{choice.Text}': {choice.Confidence:F2}%")
                Next
            End If
        Next
    Next
End Using
$vbLabelText   $csharpLabel

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}$");
    }
}
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}$");
    }
}
Imports IronOcr

Public Class DocumentValidator
    Private ReadOnly ocr As New IronTesseract()

    Public Function ValidatePassportNumber(imagePath As String, Optional minConfidence As Double = 95.0) As Boolean
        Using input As 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

            Dim result = ocr.Read(input)

            ' Find passport number pattern
            Dim passportLine = result.Lines _
                .Where(Function(line) line.Text.Contains("P<") OrElse IsPassportNumberFormat(line.Text)) _
                .FirstOrDefault()

            If passportLine IsNot Nothing Then
                Console.WriteLine($"Passport line found: {passportLine.Text}")
                Console.WriteLine($"Confidence: {passportLine.Confidence:F2}%")

                ' Only accept if confidence meets threshold
                Return passportLine.Confidence >= minConfidence
            End If

            Return False
        End Using
    End Function

    Private Function IsPassportNumberFormat(text As String) As Boolean
        ' Simple passport number validation
        Return System.Text.RegularExpressions.Regex.IsMatch(text, "^[A-Z]\d{7,9}$")
    End Function
End Class
$vbLabelText   $csharpLabel

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}");
}
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}");
}
Imports IronOcr

' Create an optimized OCR workflow
Dim ocr As New IronTesseract()

Using input As 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

    Dim result = ocr.Read(input)

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

    ' Generate confidence report
    Dim confidenceReport = result.Pages _
        .Select(Function(page, index) New With {
            .PageNumber = index + 1,
            .Confidence = page.Confidence,
            .WordCount = page.Words.Length,
            .LowConfidenceWords = page.Words.Count(Function(w) w.Confidence < 80)
        })

    For Each 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}")
    Next
End Using
$vbLabelText   $csharpLabel

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 dłączego 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ę warunkówą 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.

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ę...

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.