C#'da OCR Hata Ayıklama Nasıl Yapılır

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

IronOCR, OCR hatalarını kaynağında tespit etmenizi, tanıma kalitesini kelime ve karakter seviyesinde değerlendirmenizi ve uzun süreli işleri gerçek zamanlı olarak izlemenizi sağlar. Tanılama dosyası kaydı, türlendirilmiş istisna hiyerarşisi, sonuç başına güven skoru ve OcrProgress olayı gibi yerleşik araçlar bu iş akışlarını üretim hatlarında destekler.

Bu kılavuz, her biri için çalışan örnekleri sunar: tanılama kaydını etkinleştirme, türlendirilmiş istisnaları yönetme, güven skorlarıyla çıktıyı doğrulama, işleri gerçek zamanlı takip etme ve yığın hatlarına hataları izole etme.

Hızlı Başlangıç: Tam OCR tanılama kaydını etkinleştirin

İlk Read çağrısından önce LogFilePath ve LoggingMod ayarlayın. Tesseract başlatma, dil paketi yükleme ve işleme detaylarını bir günlük dosyasına yakalamak için iki özellik yeterlidir.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçasını kopyalayıp çalıştırın.

    IronOcr.Installation.LogFilePath = "ocr.log"; IronOcr.Installation.LoggingMod = IronOcr.Installation.LoggingMods.All;
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile

    arrow pointer


Tanılama Günlüğünü Nasıl Etkinleştiririm?

Installation sınıfı üç kayıt kontrolü sağlar. Herhangi bir Read yöntemi çağırmadan önce bunları ayarlayın.

:path=/static-assets/ocr/content-code-examples/how-to/debugging-enable-logging.cs
using IronOcr;

// Write logs to a specific file
Installation.LogFilePath = "logs/ocr_diagnostics.log";

// Enable all logging channels: file + debug output
Installation.LoggingMode = Installation.LoggingModes.All;

// Or pipe logs into your existing ILogger pipeline
Installation.CustomLogger = myLoggerInstance;
Imports IronOcr

' Write logs to a specific file
Installation.LogFilePath = "logs/ocr_diagnostics.log"

' Enable all logging channels: file + debug output
Installation.LoggingMode = Installation.LoggingModes.All

' Or pipe logs into your existing ILogger pipeline
Installation.CustomLogger = myLoggerInstance
$vbLabelText   $csharpLabel

LoggingMod, LoggingMods numarasından bayrak değerlerini kabul eder:

Tablo 1: LoggingMods Seçenekleri
ModÇıktı HedefiKullanım Durumu
NoneDevre DışıDış izleme ile üretim
DebugIDE hata ayıklama çıktı penceresiYerel geliştirme
FileLogFilePathSunucu tarafı günlük toplama
AllDebug + FileTam tanılama kaydı

CustomLogger özelliği, boru hattınızdaki OCR tanılamaları Serilog, NLog veya diğer yapılandırılmış günlük mekanizmalarına yönlendirmenize olanak tanıyan herhangi bir Microsoft.Extensions.Logging.ILogger uygulamasını destekler. Çalışmalar arasındaki birikmiş günlük verilerini kaldırmak için ClearLogFiles kullanın.

Günlük yerleştirildikten sonra, bir sonraki adım IronOCR'nin hangi istisnaları atabileceğini ve her birini nasıl ele alacağınızı anlamaktır.

IronOCR Hangi İstisnaları Atar?

IronOCR, IronOcr.İstisnas alanında türlendirilmiş istisnaları tanımlar. Bunları genel bir catch bloğu yerine özel olarak yakalamak, her bir hata türünü doğru düzeltme yoluna yönlendirmenize olanak tanır.

Tablo 2: IronOCR İstisna Referansı
İstisnaYaygın NedenÇözüm
IronOcrInputİstisnaBozuk veya desteklenmeyen resim/PDFOcrInput içine yüklemeden önce dosyayı doğrulayın
IronOcrProductİstisnaOCR yürütme sırasında dahili motor hatasıGünlüğü etkinleştirin, günlük çıktısını kontrol edin, en son NuGet sürümüne güncelleyin
IronOcrDictionaryİstisnaEksi veya bozuk .traineddata dil dosyasıDil paketi NuGet'i yeniden yükleyin veya LanguagePackDirectory ayarlayın
IronOcrNativeİstisnaYerel C++ etkileşim hatasıVisual C++ Yeniden Dağıtılabilir yükleyin; AVX desteğini kontrol edin
IronOcrLicensingİstisnaEksik veya süresi dolmuş lisans anahtarıRead öncesinde LicenseKey ayarlayın
LanguagePackİstisnaBeklenen yerde dil paketi bulunamadıLanguagePackDirectory doğrulayın veya NuGet dil paketini yeniden yükleyin
IronOcrAssemblyVersionMismatchİstisnaKısmi güncelleme sonrası uyumsuz montaj sürümleriNuGet önbelleğini temizleyin, paketleri geri yükleyin, tüm IronOCR paketlerinin uyumlu olduğundan emin olun

Her bir istisna türünü ayrı ayrı ele almak için aşağıdaki try-catch bloğunu kullanın, koşullu günlükleme için istisna filtreleri uygulayın.

Girdi

IronOCR Çözümleri tarafından Acme Corporation'a gönderilen tek sayfalık bir satıcı faturası, LoadPdf üzerinden OcrInput'ye yüklendi. Dört satır öğesi, vergi ve toplam tutarı içerir - her istisna işlemcisinin gerçekçi bir alıştırma yapması için yeterli metin çeşitliliği.

invoice_scan.pdf: Her bir türlendirilmiş istisna işlemcisini sırayla göstermek için kullanılan tedarikçi faturası (#INV-2024-7829).

:path=/static-assets/ocr/content-code-examples/how-to/debugging-exception-handling.cs
using IronOcr;
using IronOcr.Exceptions;

var ocr = new IronTesseract();

try
{
    using var input = new OcrInput();
    input.LoadPdf("invoice_scan.pdf");

    OcrResult result = ocr.Read(input);
    Console.WriteLine($"Text: {result.Text}");
    Console.WriteLine($"Confidence: {result.Confidence:P1}");
}
catch (IronOcrInputException ex)
{
    // File could not be loaded — corrupt, locked, or unsupported format
    Console.Error.WriteLine($"Input error: {ex.Message}");
}
catch (IronOcrDictionaryException ex)
{
    // Language pack missing — common in containerized deployments
    Console.Error.WriteLine($"Language pack error: {ex.Message}");
}
catch (IronOcrNativeException ex) when (ex.Message.Contains("AVX"))
{
    // CPU does not support AVX instructions
    Console.Error.WriteLine($"Hardware incompatibility: {ex.Message}");
}
catch (IronOcrLicensingException)
{
    Console.Error.WriteLine("License key is missing or invalid.");
}
catch (IronOcrProductException ex)
{
    // Catch-all for other IronOCR engine errors
    Console.Error.WriteLine($"OCR engine error: {ex.Message}");
    Console.Error.WriteLine($"Stack trace: {ex.StackTrace}");
}
Imports IronOcr
Imports IronOcr.Exceptions

Dim ocr As New IronTesseract()

Try
    Using input As New OcrInput()
        input.LoadPdf("invoice_scan.pdf")

        Dim result As OcrResult = ocr.Read(input)
        Console.WriteLine($"Text: {result.Text}")
        Console.WriteLine($"Confidence: {result.Confidence:P1}")
    End Using
Catch ex As IronOcrInputException
    ' File could not be loaded — corrupt, locked, or unsupported format
    Console.Error.WriteLine($"Input error: {ex.Message}")
Catch ex As IronOcrDictionaryException
    ' Language pack missing — common in containerized deployments
    Console.Error.WriteLine($"Language pack error: {ex.Message}")
Catch ex As IronOcrNativeException When ex.Message.Contains("AVX")
    ' CPU does not support AVX instructions
    Console.Error.WriteLine($"Hardware incompatibility: {ex.Message}")
Catch ex As IronOcrLicensingException
    Console.Error.WriteLine("License key is missing or invalid.")
Catch ex As IronOcrProductException
    ' Catch-all for other IronOCR engine errors
    Console.Error.WriteLine($"OCR engine error: {ex.Message}")
    Console.Error.WriteLine($"Stack trace: {ex.StackTrace}")
End Try
$vbLabelText   $csharpLabel

Çıktı

Başarı Çıktısı

Fatura sorunsuz yükleniyor ve motor bir karakter sayısını bir güven puanıyla birlikte geri dönüyor.

invoice_scan.pdf'in başarılı OCR okumasını gösteren terminal çıktısı, karakter sayısı ve güven puanı ile

Başarısız Çıktı

Eksik bir PDF dosyası yüklenirken fırlatılan istisnayı gösteren terminal çıktısı

Belirsizden genele doğru catch bloklarını sıralayın. when içindeki IronOcrNativeİstisna maddesi, ilişkisiz yerel hataları yakalamadan AVX ile ilgili hataları filtreler. Her bir işlemci istisna mesajını günlüğe kaydeder; genel bir catch bloğu ayrıca post-mortem analiz için istif dökümünü de yakalar.

Doğru istisnayı yakalamak, bir şeylerin ters gittiğini size söyler, ancak motorun başarılı olduğunda ne kadar iyi performans gösterdiğini söylemez. Bunun için güven puanlarını kullanın.

OCR Çıktısını Güven Puanları ile Nasıl Doğrularım?

Her OcrResult nesnesi, motorun tanınan tüm karakterler genelinde ortalama istatistiksel kesinliğini temsil eden 0 ile 1 arasında bir değer olan bir Confidence özelliği sunar. Bunu sonuç hiyerarşisinin her seviyesinde erişebilirsiniz: belge, sayfa, paragraf, kelime ve karakter seviyelerinde.

Düşük kaliteli sonuçların ileriye yayılmasını önlemek için eşik kapılı bir desen kullanın.

Girdi

Eşya, indirimler, toplamlar ve bir barkod içerikli bir termal fiş, LoadImage üzerinden yüklendi. Dar genişliği, monospaced yazı tipi ve soluk baskısı onu kelime başına güven eşiği için pratik bir stres testi yapar.

FoodMart'tan eşya, indirimler ve ödül puanlarını gösteren örnek termal fiş OCR girdisi olarak kullanılır

receipt.png: Eşik kapılı güven doğrulama ve kelime başına doğruluk incelemesi göstermek için kullanılan termal fiş taraması.

:path=/static-assets/ocr/content-code-examples/how-to/debugging-confidence-scoring.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.png");

OcrResult result = ocr.Read(input);
double confidence = result.Confidence;

Console.WriteLine($"Overall confidence: {confidence:P1}");

// Threshold-gated decision
if (confidence >= 0.90)
{
    Console.WriteLine("ACCEPT — high confidence, processing result.");
    ProcessResult(result.Text);
}
else if (confidence >= 0.70)
{
    Console.WriteLine("FLAG — moderate confidence, queuing for review.");
    QueueForReview(result.Text, confidence);
}
else
{
    Console.WriteLine("REJECT — low confidence, logging for investigation.");
    LogRejection("receipt.png", confidence);
}

// Drill into per-page and per-word confidence for diagnostics
foreach (var page in result.Pages)
{
    Console.WriteLine($"  Page {page.PageNumber}: {page.Confidence:P1}");

    var lowConfidenceWords = page.Words
        .Where(w => w.Confidence < 0.70)
        .ToList();

    foreach (var word in lowConfidenceWords)
    {
        Console.WriteLine($"    Low-confidence word: \"{word.Text}\" ({word.Confidence:P1})");
    }
}
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadImage("receipt.png")

    Dim result As OcrResult = ocr.Read(input)
    Dim confidence As Double = result.Confidence

    Console.WriteLine($"Overall confidence: {confidence:P1}")

    ' Threshold-gated decision
    If confidence >= 0.9 Then
        Console.WriteLine("ACCEPT — high confidence, processing result.")
        ProcessResult(result.Text)
    ElseIf confidence >= 0.7 Then
        Console.WriteLine("FLAG — moderate confidence, queuing for review.")
        QueueForReview(result.Text, confidence)
    Else
        Console.WriteLine("REJECT — low confidence, logging for investigation.")
        LogRejection("receipt.png", confidence)
    End If

    ' Drill into per-page and per-word confidence for diagnostics
    For Each page In result.Pages
        Console.WriteLine($"  Page {page.PageNumber}: {page.Confidence:P1}")

        Dim lowConfidenceWords = page.Words _
            .Where(Function(w) w.Confidence < 0.7) _
            .ToList()

        For Each word In lowConfidenceWords
            Console.WriteLine($"    Low-confidence word: ""{word.Text}"" ({word.Confidence:P1})")
        Next
    Next
End Using
$vbLabelText   $csharpLabel

Çıktı

Terminal çıktısı, güven puanı, kabul/bayrak/reddet kararı ve makbuz resmi için kelime başına düşük güven ayrıntılarını gösterir

Bu desen, OCR'nin veri girişi, fatura işleme veya uyumluluk iş akışlarına girdiği hatlarda gereklidir. Kelime başına ayrıntılar, kaynak resmin hangi bölgelerinin bozulmaya neden olduğunu tam olarak belirler; daha sonra resim kalitesi filtreleri veya yönlendirme düzeltmeleri uygulayabilir ve yeniden işleme tabi tutabilirsiniz. Güven puanı hakkında daha ayrıntılı bir inceleme için güven seviyeleri nasıl yapılır kılavuzuna bakın.

Uzun süreli işler için yalnızca güven yeterli değildir. Motorun hala ilerleme kaydedip kaydetmediğini de bilmeniz gerekir ve bu da OcrProgress olayının devreye girdiği yerdir.

OCR İlerlemesini Gerçek Zamanlı Nasıl İzlerim?

Çok sayfalı belgeler için OcrProgress olayı, her sayfa tamamlandığında IronTesseract üzerinde çalışır. OcrProgressEventArgs nesnesi ilerleme yüzdesini, geçen süreyi, toplam sayfa sayısını ve tamamlanan sayfaları açığa çıkarır. Örnek, girdi olarak yukarıda belirtilen üç sayfalık çeyrek raporu kullanır: bir yönetici özeti, gelir dağılımı ve operasyonel metrikleri kapsayan yapılandırılmış bir iş belgesi.

Girdi

Üç sayfalık Q1 2024 mali raporu LoadPdf üzerinden yüklendi. Birinci sayfa yönetici özetini KPI metrikleriyle kapsar, ikinci sayfa ürün hatları ve bölgelere göre gelir tablolarını içerir ve üçüncü sayfa operasyonel işlem hacimlerini kapsar - her sayfa türü, ilerleme geri çağrılarına gözlemleyebileceğiniz belirgin sayfa başına zamanlama üretir.

quarterly_report.pdf: Üç sayfalık Q1 2024 mali raporu (yönetici özeti, gelir dağılımı, operasyonel metrikler) sayfa başına gerçek zamanlı `OcrProgress` geri çağrılarını göstermek için kullanılır.

:path=/static-assets/ocr/content-code-examples/how-to/debugging-progress-monitoring.cs
using IronOcr;

var ocr = new IronTesseract();

ocr.OcrProgress += (sender, e) =>
{
    Console.WriteLine(
        $"[OCR] {e.ProgressPercent}% complete | " +
        $"Page {e.PagesComplete}/{e.TotalPages} | " +
        $"Elapsed: {e.Duration.TotalSeconds:F1}s"
    );
};

using var input = new OcrInput();
input.LoadPdf("quarterly_report.pdf");

OcrResult result = ocr.Read(input);
Console.WriteLine($"Finished in {result.Pages.Count()} pages, confidence: {result.Confidence:P1}");
Imports IronOcr

Dim ocr = New IronTesseract()

AddHandler ocr.OcrProgress, Sub(sender, e)
    Console.WriteLine(
        $"[OCR] {e.ProgressPercent}% complete | " &
        $"Page {e.PagesComplete}/{e.TotalPages} | " &
        $"Elapsed: {e.Duration.TotalSeconds:F1}s"
    )
End Sub

Using input As New OcrInput()
    input.LoadPdf("quarterly_report.pdf")

    Dim result As OcrResult = ocr.Read(input)
    Console.WriteLine($"Finished in {result.Pages.Count()} pages, confidence: {result.Confidence:P1}")
End Using
$vbLabelText   $csharpLabel

Çıktı

Üç sayfalık PDF için yüzde tamamlanma ve geçen süre ile birlikte sayfa başına OcrProgress olay geri çağrılarını gösteren terminal çıktısı

Bu olayı, OCR iş süresi izlemenin yanı sıra duraklamaları tespit etmek için loglama altyapınıza bağlayın. Gelecek süre, ilerleme yüzdesi ilerlemeden bir eşiği aşarsa, boru hattı işi soruşturma için işaretleyebilir. Bu, yığın PDF işleme için özellikle kullanışlıdır, burada tek bir bozuk sayfa tüm işi durdurabilir.

İlerleme izlemesi yürütme durumunu gösterir, ancak dosya düzeyinde bir hata, izole edilmezse tüm partiyi durdurabilir.

Yığın OCR Boru Hatlarında Hataları Nasıl Yönetirim?

Üretimde, tek bir dosya hatası tüm partiyi durdurmamalıdır. Her dosyada hataları izole edin, bağlamla hataları günlüğe kaydedin ve iş sonunda bir özet raporu oluşturun. Örnek, bir fatura, bir satın alma siparişi ve bir hizmet sözleşmesi ile bir hata yolunu tetiklemek için kasıtlı olarak bozulmuş bir dosya içeren tarama belgeleri klasörünü işler. Aşağıda temsili bir örnek gösterilmektedir:

Girdi

Bir PDF dosyaları klasörü Directory.GetFiles'ye geçti - bir fatura, bir satın alma siparişi, bir hizmet sözleşmesi ve kasıtlı olarak bozulmuş bir dosya. Aşağıdaki iki temsili örnek, boru hattının tek bir çalışmada işlediği belge çeşitliliğini gösterir.

:path=/static-assets/ocr/content-code-examples/how-to/debugging-batch-pipeline.cs
using IronOcr;
using IronOcr.Exceptions;

var ocr = new IronTesseract();
Installation.LogFilePath = "batch_debug.log";
Installation.LoggingMode = Installation.LoggingModes.File;

string[] files = Directory.GetFiles("scans/", "*.pdf");
int succeeded = 0, failed = 0;
double totalConfidence = 0;
var failures = new List<(string File, string Error)>();

foreach (string file in files)
{
    try
    {
        using var input = new OcrInput();
        input.LoadPdf(file);

        OcrResult result = ocr.Read(input);
        totalConfidence += result.Confidence;
        succeeded++;

        Console.WriteLine($"OK: {Path.GetFileName(file)} — {result.Confidence:P1}");
    }
    catch (IronOcrInputException ex)
    {
        failed++;
        failures.Add((file, $"Input error: {ex.Message}"));
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}");
    }
    catch (IronOcrProductException ex)
    {
        failed++;
        failures.Add((file, $"Engine error: {ex.Message}"));
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}");
    }
    catch (Exception ex)
    {
        failed++;
        failures.Add((file, $"Unexpected: {ex.Message}"));
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.GetType().Name}: {ex.Message}");
    }
}

// Summary report
Console.WriteLine($"\n--- Batch Summary ---");
Console.WriteLine($"Total: {files.Length} | Passed: {succeeded} | Failed: {failed}");
if (succeeded > 0)
    Console.WriteLine($"Average confidence: {totalConfidence / succeeded:P1}");

foreach (var (f, err) in failures)
    Console.WriteLine($"  {Path.GetFileName(f)}: {err}");
Imports IronOcr
Imports IronOcr.Exceptions
Imports System.IO

Dim ocr As New IronTesseract()
Installation.LogFilePath = "batch_debug.log"
Installation.LoggingMode = Installation.LoggingModes.File

Dim files As String() = Directory.GetFiles("scans/", "*.pdf")
Dim succeeded As Integer = 0
Dim failed As Integer = 0
Dim totalConfidence As Double = 0
Dim failures As New List(Of (File As String, Error As String))()

For Each file As String In files
    Try
        Using input As New OcrInput()
            input.LoadPdf(file)

            Dim result As OcrResult = ocr.Read(input)
            totalConfidence += result.Confidence
            succeeded += 1

            Console.WriteLine($"OK: {Path.GetFileName(file)} — {result.Confidence:P1}")
        End Using
    Catch ex As IronOcrInputException
        failed += 1
        failures.Add((file, $"Input error: {ex.Message}"))
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}")
    Catch ex As IronOcrProductException
        failed += 1
        failures.Add((file, $"Engine error: {ex.Message}"))
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.Message}")
    Catch ex As Exception
        failed += 1
        failures.Add((file, $"Unexpected: {ex.Message}"))
        Console.Error.WriteLine($"FAIL: {Path.GetFileName(file)} — {ex.GetType().Name}: {ex.Message}")
    End Try
Next

' Summary report
Console.WriteLine(vbCrLf & "--- Batch Summary ---")
Console.WriteLine($"Total: {files.Length} | Passed: {succeeded} | Failed: {failed}")
If succeeded > 0 Then
    Console.WriteLine($"Average confidence: {totalConfidence / succeeded:P1}")
End If

For Each failure In failures
    Console.WriteLine($"  {Path.GetFileName(failure.File)}: {failure.Error}")
Next
$vbLabelText   $csharpLabel

Çıktı

Her dosya için karakter sayıları, güven puanları, bozulmuş bir PDF'den bir hata ve bir özet satırı içeren yığın boru hatları sonuçlarını gösteren terminal çıktısı

Dış catch bloğu, ortak depolamalarda ağ süre aşımı, izin sorunları veya büyük TIFF'lerde bellek yetersizliği koşulları gibi öngörülemeyen hataları ele alır. Her başarısızlık, döngü kalan dosyaları işlemeye devam ederken özet için dosya yolunu ve hata mesajını kaydeder. batch_debug.log adresindeki günlük dosyası, iç tanılamaları tetikleyen herhangi bir dosya için motor düzeyinde detayı yakalar.

Hizmetlerde veya web uygulamalarında engellenmeyen yürütme için IronOCR, aynı try-catch yapısını kullanan ReadAsync destekler.

Çalışma sorunsuz hatasız çalışıyorsa ancak çıkarılan metin hala yanlışsa, kök neden neredeyse her zaman görüntü kalitesi olur, kodu içermez. Bunu nasıl ele alacağınız aşağıda açıklanmıştır.

OCR Hassasiyetini Nasıl Hata Ayıklarım?

Güven puanları sürekli olarak düşükse, sorun kaynağı motor değil kaynak görüntüdür. IronOCR, bunu ele almak için ön işleme araçları sunar:

  • Metin netliğini artırmak için keskinleştirme, gürültü giderme, genişletme ve erozizyona görüntü kalitesi filtreleri uygulayın
  • Taranmış belgelerin otomatik olarak eğik ve döndürülmesini sağlamak için yönlendirme düzeltmesi kullanın
  • İşlemeden önce düşük çözünürlüklü görüntüler için DPI ayarını düzenle
  • Karmaşık düzenlerde metin bölgelerini tespit etmek ve izole etmek için bilgisayarla görme kullanın IronOCR Utility, filtre kombinasyonlarını görsel olarak test etmenize ve en iyi C# yapılandırmasını dışa aktarmanıza olanak tanır

Dağıtım özgü sorunlar için, IronOCR Azure İşlevleri, Docker ve Linux ve genel ortam kurulumu için özel sorun giderme kılavuzlarını korur.

Sırada Ne Yapmalıyım?

Artık çalışma zamanında IronOCR'nin nasıl hata ayıklanacağını anladığınıza göre, şu konuları keşfedin:

Üretim kullanımı için, filigranları kaldırmak ve tam işlevselliğe erişmek amacıyla bir lisans almayı unutmayın.

Sıkça Sorulan Sorular

C#'da OCR hata ayıklarken yaygın sorunlar nelerdir?

Yaygın sorunlar arasında yanlış OCR sonuçları, düşük güven puanları ve beklenmeyen istisnalar bulunur. IronOCR, bu sorunları belirleyip çözmek için günlüğe kaydetme ve güven puanlaması gibi araçlar sunar.

IronOCR, C#'da hata işlemeyi nasıl destekler?

IronOCR, OCR işlemi sırasında hataların etkili bir şekilde anlaşılmasına ve işlenmesine yardımcı olan yazılı hata mesajları ve detaylı hata iletileri sunar.

IronOCR'un hata ayıklama için hangi günlüğe kaydetme özellikleri vardır?

IronOCR, OCR süreçlerini izlemeye ve olası sorunları tanımlamaya yardımcı olarak OCR işlemleri hakkında ayrıntılı bilgi kaydeden yerleşik günlüğe kaydetme yeteneklerine sahiptir.

Güven puanlaması OCR sonuçlarını nasıl iyileştirir?

IronOCR'taki güven puanlaması, tanınan metnin doğruluğunu belirlemeye yardımcı olur, geliştiricilere düşük güven alanlarına odaklanma ve OCR sonuçlarını iyileştirme imkanı tanır.

IronOCR'u kullanarak OCR görevlerinin ilerlemesini takip edebilir miyim?

Evet, IronOCR, OCR görevlerinin durumunu ve süresini izlemeyi sağlayan ilerleme takibi özellikleri sunar ve böylece daha iyi kaynak yönetimi ve performans optimizasyonu sağlar.

OCR hata işleme için hangi try-catch desenleri önerilir?

IronOCR, istisnaların zarifçe işlenmesi için üretime hazır try-catch desenleri kullanılmasını önerir, bu sayede OCR uygulamaları sağlam ve sürdürülebilir kalır.

IronOCR'un yerleşik araçları OCR hata ayıklamayı nasıl geliştirir?

IronOCR'un araçları, örneğin günlüğe kaydetme, yazılı istisnalar ve güven puanlaması, sorunları tanımlama ve çözme konusunda kapsamlı destek sunar, böylece hata ayıklama sürecini geliştirir.

Hata günlüğe kaydetme OCR uygulamalarında neden önemlidir?

Hata günlüğe kaydetme, OCR işleme sırasında neyin yanlış gittiğine dair içgörüler sağlar, geliştiricilerin uygulamalarındaki sorunları hızla teşhis etmesine ve çözmesine olanak tanır.

IronOCR'da yazılı istisnalar hata ayıklamada ne rol oynar?

IronOCR'daki yazılı istisnalar, belirli hata bilgileri sağlar, geliştiricilerin sorunun doğasını anlamasını ve hata ayıklama sırasında uygun çözümleri uygulamasını kolaylaştırır.

Geliştiriciler IronOCR'un hata ayıklama özelliklerinden nasıl faydalanabilir?

Geliştiriciler, IronOCR'un hata ayıklama özelliklerinden yararlanarak sorunları etkin bir şekilde giderebilir, uygulama stabilitesini artırabilir ve OCR sonuçlarının genel kalitesini iyileştirebilir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.