C#'da OCR Nasıl Hata Ayıklanır
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.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronOcr -
Bu kod parçacığını kopyalayın ve çalıştırın.
IronOcr.Installation.LogFilePath = "ocr.log"; IronOcr.Installation.LoggingMod = IronOcr.Installation.LoggingModes.All; -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Asgari İş Akışı (5 adım)
- OCR hata ayıklama için bir C# kütüphanesi indir
LogFilePath'i yazılabilir bir dosya yoluna ayarlayınLoggingMod'u tam tanı yakalama içinTümolarak ayarlayın- OCR işleminizi çalıştırın ve sorunu yeniden üretin
- Oluşturulan günlük dosyasını motor uyarıları ve işleme detayları için inceleyin
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
LoggingMod, LoggingMods enumundan bayrak değerlerini kabul eder:
| Mod | Çıktı Hedefi | Kullanım Örneği |
|---|---|---|
Yok | Devre Dışı | Dış izleme ile üretim |
Hata ayıklama | IDE hata ayıklama çıkış penceresi | Yerel geliştirme |
Dosya | LogFilePath | Sunucu tarafı günlük toplama |
Tüm | Debug + Dosya | Tam 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.
| İstisna | Yaygın Sebep | Çözüm |
|---|---|---|
IronOcrInputİstisna | Bozuk veya desteklenmeyen resim/PDF | OcrInput içine yüklemeden önce dosyayı doğrulayın |
IronOcrProductİstisna | OCR 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 bozuk | Dil paketi NuGet'i yeniden yükleyin veya LanguagePackDirectory ayarlayın |
IronOcrNativeİstisna | Yerel C++ birlikte çalışabilirlik hatası | Visual C++ Redistributable kurun; AVX desteğini kontrol edin |
IronOcrLicensingİstisna | Eksik veya süresi dolmuş lisans anahtarı | Read çağrısından önce LicenseKey ayarlayın |
LanguagePackİstisna | Beklenen yolda dil paketi bulunamadı | LanguagePackDirectory'yi doğrulayın veya NuGet dil paketini yeniden yükleyin |
IronOcrAssemblyVersionMismatchİstisna | Kısmi güncelleme sonrası eşleşmeyen derleme sürümleri | NuGet ö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
Çı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.
Başarısız Çıktı
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.
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
Çıktı
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
Çıktı
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.
batch-scan-01.pdf: Bright Horizon Ltd. (INV-2024-001) faturası — başarılı OCR geçişi.
batch-scan-02.pdf: TechSupply Inc. (PO-2024-042) satın alma siparişi - aynı çalışmadaki ikinci belge türü.
: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
Çıktı
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:
- Sayfalar, bloklar, paragraflar, kelimeler ve koordinatları içeren OCR sonuç yapısı ve meta verileri gezinme Sonuç hiyerarşisinin her seviyesinde güven puanlarının anlaşılması
- Yüksek verimli iş akışları için
ReadAsyncile asenkron ve çoklu iş parçacığı kullanımı - Tüm özellik listesini görmek için tam API referansını gezmek
Ü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.

