C#'da OCR Nasıl Hata Ayıklanı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, WORD ve karakter düzeyinde tanıma kalitesini değerlendirmenizi ve uzun süren işleri gerçek zamanlı olarak izlemenizi sağlar. Tanı dosyası günlüğü, yazılmış istisna hiyerarşisi, sonuç başına güvenlilik puanlaması ve OcrProgress olayı gibi yerleşik araçlar, üretim boru hatlarındaki bu iş akışlarını destekler.

Bu kılavuz, her biri için çalışan örnekler üzerinde yürür: tanı günlüğünü etkinleştirme, yazılı istisnaları ele alma, çıktı doğrulamayı güven puanlarıyla doğrulama, iş ilerlemesini gerçek zamanlı izleme ve toplu boru hatlarında hataları izole etme.

Hızlı Başlat: Tam OCR tanı günlüğünü etkinleştirin

İlk Read çağrısından önce Installation sınıfında LogFilePath ve LoggingMod ayarlarını yapı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. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

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

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

    arrow pointer


Tanı Günlüğü Nasıl Etkinleştirilir?

Installation sınıfı üç günlükleme denetimi sunar. Herhangi bir Read yöntemini ç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 enumundan bayrak değerlerini kabul eder:

Tablo 1: LoggingMods Seçenekleri
ModÇıktı HedefiKullanım Örneği
YokDevre DışıDış izleme ile üretim
Hata ayıklamaIDE hata ayıklama çıkış penceresiYerel geliştirme
DosyaLogFilePathSunucu tarafı günlük toplama
TümDebug + DosyaTam tanı yakalama

CustomLogger özelliği, herhangi bir Microsoft.Extensions.Logging.ILogger uygulamasını destekler ve OCR tanılama bilgilerini Serilog, NLog veya boru hattınızdaki diğer yapılandırılmış günlükleme alıcılarına yönlendirmenize olanak tanır. Çalıştırmalar arasında biriken günlük verilerini kaldırmak için ClearLogFiles kullanın.

Günlükleme devrede olduğunda, IronOCR'un atabileceği istisnaların hangi türlerini ve bunların her birinin nasıl ele alındığını anlamak bir sonraki adımdır.

IronOCR Hangi İstisnaları Atar?

IronOCR, IronOcr.Exceptions ad alanı altında yazılan istisnaları tanımlar. Bunları yakalama bloğu yerine özellikle yakalamak, her hata türünü doğru iyileştirme yoluna yönlendirmenizi sağlar.

Tablo 2: IronOCR İstisna Referansı
İstisnaYaygın SebepÇö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ılarını kontrol edin, en son NuGet sürümüne güncelleyin
IronOcrDictionaryİstisna.traineddata dil dosyası eksik veya bozukDil paketi NuGet'i yeniden yükleyin veya LanguagePackDirectory ayarlayın
IronOcrNativeİstisnaYerel C++ birlikte çalışabilirlik hatasıVisual C++ Redistributable kurun; AVX desteğini kontrol edin
IronOcrLicensingİstisnaEksik veya süresi dolmuş lisans anahtarıRead çağrısından önce LicenseKey ayarlayın
LanguagePackİstisnaBeklenen yolda dil paketi bulunamadıLanguagePackDirectory'yi doğrulayın veya NuGet dil paketini yeniden yükleyin
IronOcrAssemblyVersionMismatchİstisnaKısmi güncelleme sonrası eşleşmeyen derleme sürümleriNuGet önbelleğini temizleyin, paketleri geri yükleyin, tüm IronOCR paketlerinin uyumlu olduğundan emin olun

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

Giriş

IronOCR Solutions'dan Acme Corporation'a gönderilen, LoadPdf aracılığıyla OcrInput'ya yüklenen tek sayfalık bir satıcı faturası. Dört satır öğesi, vergi ve toplam toplamı içerir — her istisna işleyicisine gerçekçi bir alıştırma sağlamak için yeterli metin çeşidi.

invoice_scan.pdf: Her türlendirilmiş istisna işleyicinin sıralı olarak gösterilmesini sağlamak için kullanılan satıcı 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ılı Çıktı

Fatura sorunsuz bir şekilde yüklenir ve motor, karakter sayısını bir güven puanı ile birlikte döner.

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

Başarısız Çıktı

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

Yakala bloklarını en spesifikten en genele doğru sıralayın. when maddesindeki IronOcrNativeİstisna filtreleri, alakasız yerel hataları yakalamadan AVX ile ilgili hataları yakalar. Her işleyici istisna mesajını günlüğe kaydeder; genel yakalama bloğu ayrıca inceleme için yığın izini yakalar.

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

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

Her OcrResult, Confidence özelliğini ortaya çıkarır; bu, tanınan tüm karakterlerin ortalaması alınarak hesaplanan, motorun istatistiksel kesinlik derecesini temsil eden 0 ile 1 arasında bir değerdir. Sonuç hiyerarşisinin her seviyesinde buna erişebilirsiniz: belge, sayfa, paragraf, kelime ve karakter.

Düşük kaliteli sonuçların aşağıya yayılmasını önlemek için eşik-tabanlı bir desen kullanın.

Giriş

LoadImage aracılığıyla yüklenen, kalemler, indirimler, toplamlar ve BARCODE içeren bir termal fiş. Dar genişliği, monospace fontu ve soluk baskısı, kelime başına güven eşiği için pratik bir stres testidir.

FoodMart'tan alışveriş yapılmış, toplamlar ve OCR girdisi olarak kullanılmış örnek termal fiş

receipt.png: Fiş görüntüsü için eşik ağırlıklı güven doğrulama ve kelime bazında doğruluk ayrıntısı örneklemesi gösterimi 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ı

Güven puanı, kabul et/işaretle/reddet kararı ve fiş görüntüsüne yönelik kelime başına düşük güven incelemesini gösteren terminal çıktısı

Bu desen, OCR'ın veri girişine, fatura işlemesine veya uyum iş akışlarına aktığı boru hatlarında gereklidir. Kelime başına inceleme, kaynak görüntünün hangi bölgelerinin bozulmaya neden olduğunu tam olarak belirler; ardından görüntü kalitesi filtreleri veya yön düzeltmeleri uygulayabilir ve işlemi tekrar başlatabilirsiniz. Güven puanlarını daha detaylı incelemek için güven seviyeleri nasıl-yapılır kısmına bakın.

Uzun süreli işlerde, güven tek başına yeterli değildir. Ayrıca, motorun hala ilerleme kaydedip kaydetmediğini de bilmeniz gerekir ve işte burada OcrProgress olayı devreye girer.

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

Çok sayfalı belgelerde, her sayfa tamamlandıktan sonra IronTesseract üzerindeki OcrProgress olayı tetiklenir. OcrProgressEventArgs nesnesi, ilerleme yüzdesini, geçen süreyi, toplam sayfa sayısını ve tamamlanan sayfa sayısını gösterir. Örnek, yürütücü özeti, gelir dağılımı ve operasyonel metrikleri kapsayan, yapılandırılmış bir iş belgesi olan bu üç sayfalık çeyrek dönem raporunu girdi olarak kullanır.

Giriş

LoadPdf aracılığıyla yüklenen üç sayfalık 2024 1. çeyrek mali raporu. Birinci sayfa, KPI metrikleriyle yürütücü özeti kapsıyor, ikinci sayfa ürün hattı ve bölgeye göre gelir tablolarını içeriyor, üçüncü sayfa ise operasyonel işleme hacimlerini kapsıyor - her sayfa türü ilerleme geri çağırmalarında gözlemlenebilecek ayrı sayfa bazlı zamanlamalar üretir.

quarterly_report.pdf: Three-page Q1 2024 financial report (executive summary, revenue breakdown, operational metrics) used to demonstrate real-time `OcrProgress` callbacks per page.

: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 tamamlanma yüzdesi ve geçen süre ile OcrProgress etkinlik geri çağırmalarını gösteren terminal çıktısı

Bu etkinliği, OCR iş süresi izlemek ve beklemeleri tespit etmek için günlükleme altyapınıza bağlayın. Geçen süre, ilerleme yüzdesi ilerlemeksizin bir eşiği aşarsa, boru hattı işi inceleme için işaretleyebilir. Bu, hatalı bir sayfanın tüm işi durdurabileceği yerlerde, toplu PDF işleme için özellikle faydalıdır.

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

Toplu OCR Boru Hatalarında Hatalar Nasıl Yönetilir?

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

Giriş

Directory.GetFiles adresine bir PDF klasörü gönderildi — 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, iş akışının tek bir çalıştırmada işlediği belge çeşitliliğini göstermektedir.

: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ı, bir bozuk PDF dosyasından kaynaklanan bir hata ve özet satır ile toplu boru hattı sonuçlarını gösteren terminal çıktısı

Dış yakalama bloğu beklenmedik hataları, paylaşılan depolamada ağ zaman aşımına uğramaları, izin sorunları veya büyük TIFF'ler üzerindeki bellek aşımı koşulları gibi beklenmedik hataları işler. Her hata, özeti için dosya yolunu ve hata mesajını kaydederken, döngü kalan dosyaları işlemeye devam eder. batch_debug.log adresindeki günlük dosyası, dahili tanılama işlemlerini tetikleyen tüm dosyalar için motor düzeyinde ayrıntıları kaydeder.

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

Boru hattı hatasız çalışırsa ancak çıkarılan metin yine de yanlışsa, temel neden neredeyse her zaman kod yerine görüntü kalitesidir. Bu sorunu nasıl ele alacağınız aşağıda açıklanmıştır.

OCR Doğruluğunu Nasıl Hata Ayıklarım?

Güven puanları sürekli düşükse, sorun kaynak görüntüdür, OCR motoru değil. IronOCR bu durumu ele almak için ön işleme araçları sağlar:

keskinleştirme, gürültü giderme, genişletme ve daraltma gibi görüntü kalite filtreleri uygulayın ve metin netliğini arttırın Taranmış belgeleri otomatik olarak baş hizalayın ve döndürün için yön düzeltme kullanın. Düşük çözünürlüklü görüntüler için işlemeden önce DPI ayarını ayarlayın. Bilgisayar görüşü kullanarak karmaşık düzenlerde metin bölgelerini tespit edin ve izole edin. IronOCR Utility, filtre kombinasyonlarını görsel olarak test etmenize ve en uygun C# yapılandırmasını ihraç etmenize olanak tanır.

Dağıtıma özgü sorunlar için IronOCR, Azure Functions, Docker ve Linux ve genel ortam kurulumu için özel sorun giderme kılavuzları sunar.

Sıradaki Adım Neresi Olmalı?

Artık çalışma zamanında IronOCR hata ayıklamayı nasıl yaptığını anladığınıza göre, şunları keşfedin:

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

Sıkça Sorulan Sorular

C# dilinde OCR hata ayıklama sırasında karşılaşılan yaygın sorunlar nelerdir?

Yaygın sorunlar arasında yanlış OCR sonuçları, düşük güven skorları ve beklenmedik istisnalar yer alır. IronOCR, bu sorunları belirlemeye ve çözmeye yardımcı olmak için günlüğe kaydetme ve güven skorlama gibi araçlar sunar.

IronOCR, C# dilinde hata yönetimine nasıl yardımcı olur?

IronOCR, OCR işlemleri sırasında hataları etkili bir şekilde anlamaya ve yönetmeye yardımcı olan tipli istisnalar ve ayrıntılı hata mesajları sunar.

IronOCR'un hata ayıklama için sağladığı günlüğe kaydetme özellikleri nelerdir?

IronOCR, OCR işlemlerini izlemeye ve potansiyel sorunları belirlemeye yardımcı olan yerleşik günlüğe kaydetme yeteneklerini içerir.

Güven skorlama OCR sonuçlarını nasıl iyileştirebilir?

IronOCR'deki güven skorlama, tanınan metnin doğruluğunu belirlemeye yardımcı olur, böylece geliştiriciler düşük güvenli alanlara odaklanarak OCR sonuçlarını iyileştirebilirler.

IronOCR'u kullanarak OCR görevlerinin ilerlemesini izleyebilir miyim?

Evet, IronOCR, geliştiricilerin OCR görevlerinin durumunu ve süresini izlemelerine olanak tanıyan ilerleme izleme özellikleri sunarak daha iyi kaynak yönetimini ve performans optimizasyonunu kolaylaştırır.

OCR hata yönetimi için hangi try-catch kalıpları önerilir?

IronOCR, istisnaları zarifçe yönetmek ve OCR uygulamalarının dayanıklı ve sürdürülebilir kalmasını sağlamak için üretime hazır try-catch kalıplarını kullanmanızı önerir.

IronOCR'un yerleşik araçları OCR hata ayıklamasını nasıl geliştirebilir?

IronOCR'un araçları, günlüğe kaydetme, tipli istisnalar ve güven skorlama gibi özellikler, sorunları belirleme ve çözme konusunda kapsamlı destek sunarak hata ayıklama sürecini geliştirir.

OCR uygulamalarında hata kaydı neden önemlidir?

Hata kaydı, OCR işlemi sırasında neyin yanlış gittiğini anlamayı sağlar ve böylece geliştiricilerin uygulamalarındaki sorunları hızlı bir şekilde teşhis edip düzeltmelerine olanak tanır.

IronOCR'de hata ayıklama sırasında tipli istisnalar ne rol oynar?

IronOCR'deki tipli istisnalar, belirli hata bilgileri sağlayarak geliştiricilerin sorunun doğasını daha kolay anlamalarına ve uygun çözümleri uygulamalarına olanak tanır.

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

Geliştiriciler, IronOCR'un hata ayıklama özelliklerini, sorunları verimli bir şekilde çözerek uygulama kararlılığını artırmak ve OCR sonuçlarının genel kalitesini iyileştirmek için kullanabilir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.