C# OCR Okuma Güvenini IronOCR ile Nasıl Alırım?
IronOCR'nin okuma güveni, OCR sisteminin tanınan metin doğruluğu konusunda ne kadar emin olduğunu, 0 ile 100 arasında, daha yüksek puanların daha büyük güvenilirlik anlamına geldiği değerlerle gösterir — herhangi bir OcrResult nesnesinde Confidence özelliği aracılığıyla erişebilirsiniz.
Optik Karakter Tanıma'da (OCR) okuma güveni, bir görüntü veya belgede tanınan metnin doğruluğuna OCR sisteminin verdiği güven seviyesi veya güvenilirliği ifade eder. Bu, OCR sisteminin tanınan metnin doğru olduğuna ne kadar emin olduğunu ölçen bir ölçümüdür. Bu ölçüt, tarama belgeleri, fotoğraflar, veya metin kalitesinin değişiklik gösterebileceği herhangi bir görüntü üzerinde işlem yaparken özellikle önem kazanır.
Yüksek bir güven skoru, tanımanın doğru olduğuna yüksek derecede güven duyulduğunu belirtirken, düşük bir güven seviyesi tanımanın daha az güvenilir olabileceğini önerir. Bu güven seviyelerini anlamak, geliştiricilerin uygulamalarında uygun doğrulama mantığı ve hata ayıklama mekanizmaları uygulamalarına yardımcı olur.
Çabuk Başlangıç: OCR Okuma Güvenini Bir Satırda AlınBir resim dosya yolu ile IronTesseract'in Read metodunu kullanın, ardından döndürülen OcrResult üzerindeki Confidence özelliğine erişerek IronOCR'nin metin tanıma konusunda ne kadar emin olduğunu görün. OCR çıktı doğruluğunu değerlendirmeye başlamak için basit ve güvenilir bir yoldur.
-
1Install IronOCR with NuGet Package Manager
-
2Bu kod parçacığını kopyalayın ve çalıştırın.
double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence;C# -
3Canlı 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)
- Okuma güvenine erişmek için bir C# kütüphanesi indirin
- Hedeflenen görüntü ve PDF belgesini hazırlayın
- OCR sonucunun
Confidenceözelliğine erişin - Sayfaların, paragrafların, satırların, kelimelerin ve karakterlerin güvenini alın
- Alternatif kelime seçimleri için
Choicesözelliğini kontrol edin
C#'da Okuma Güvenini Nasıl Alırım?
Giriş görüntüsünde OCR yapıldıktan sonra, metnin güven düzeyi Confidence özelliğinde saklanır. Nesneleri kullanımdan sonra otomatik olarak ortadan kaldırmak için 'using' deyimini kullanın. Sırasıyla resimler ve PDF'ler gibi belgeler eklemek için OcrImageInput ve OcrPdfInput sınıflarını ekleyin. Read metodu, Confidence özelliğine erişim sağlayan bir OcrResult nesnesi döndürecektir.
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.ConfidenceDönen güvenlik değeri 0 ile 100 arasında değişir, bunlardan:
- 90-100: Mükemmel güven - Metin çok güvenilirdir
- 80-89: İyi güven - Metin genel olarak doğru ama küçük belirsizlikler mevcut
- 70-79: Orta güven - Metin bazı hatalar içerebilir
- 70'in Altı: Düşük güven - Metin incelenmeli veya yeniden işlenmeli
Farklı Seviyelerde Güveni Nasıl Alırım?
Sadece tüm belgenin güven seviyesini almakla kalmaz, aynı zamanda her sayfanın, paragrafın, satırın, kelimenin ve karakterin güven seviyelerine de erişebilirsiniz. Ayrıca, birbirine yakın bir veya daha fazla paragraftan oluşan bir koleksiyonu temsil eden bir bloğun güvenini de belirleyebilirsiniz.
// 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).ConfidencePratik Örnek: Güven Bazlı Filtreleme
Düşük kaliteli taramalar gibi değişken kalitede belgeler işlerken, sonuçları filtrelemek için güven puanlarını kullanabilirsiniz:
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 UsingOCR'deki Karakter Seçimleri Nedir?
Güven seviyesi dışında, Choices adlı başka ilginç bir özellik vardır. Choices, alternatif kelime seçimlerinin bir listesini ve bunların istatistiksel önemini içerir. Bu bilgi, kullanıcıya diğer olası karakterlere erişim imkanı sunar. Bu özellik, özellikle birden fazla dil veya özel yazı tipleriyle çalışırken çok kullanışlıdır.
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).ChoicesAlternatif Karakter Seçimleri Nasıl Yardımcı Olur?
Alternatif karakter seçimleri birçok yarar sunar:
- Belirsizlik Çözümü: 'O' ve '0', 'l' ve '1' gibi karakterler karıştırıldığında
- Yazı Tipi Varyasyonları: Şık veya dekoratif yazı tipleri için farklı yorumlar
- Kalite Sorunları: Bozulmuş metinlerle uğraşırken birden fazla olasılık
- Dil Bağlamı: Dil kurallarına dayalı alternatif yorumlar

Karakter Seçimleriyle Çalışmak
İşte karakter seçimlerini daha iyi doğruluk için nasıl kullanacağınızı gösteren kapsamlı bir örnek:
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 UsingGelişmiş Güven Stratejileri
Uzman belgeler gibi pasaportlar, plakalar, veya MICR çekleri ile çalışırken, güven skorları doğrulama için kritik hale gelir:
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 ClassDaha İyi Güven için Optimize Etme
Daha yüksek güven skorları elde etmek için görüntü filtrelerini ve ön işleme tekniklerini kullanmayı düşünün:
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Özet
OCR güven skorlarını anlamak ve kullanmak, sağlam belge işleme uygulamaları oluşturmak için esastır. IronOCR'un güven özelliklerinden ve karakter seçimlerinden yararlanarak, geliştiriciler OCR iş akışlarında akıllı doğrulama, hata ayıklama ve kalite kontrol mekanizmalarını uygulayabilir. Ekran görüntüleri, tablolar veya uzman belgeler işlerken, güven skorları doğru metin çıkarımı sağlamak için gereken ölçütleri sağlar.
Sıkça Sorulan Sorular
OCR güveni nedir ve neden önemlidir?
OCR güveni, OCR sisteminin metin tanıma doğruluğu hakkında ne kadar emin olduğunu gösteren 0 ile 100 arasında bir ölçümdür. IronOCR, bu metriği her OcrResult nesnesi üzerindeki Confidence özelliği ile sağlar, geliştiricilere özellikle taranmış belgeler, fotoğraflar veya değişen metin kalitesine sahip görüntüleri işlerken tanınan metnin güvenilirliğini değerlendirmelerine yardımcı olur.
C#'de OCR güvenini nasıl hızlı bir şekilde kontrol edebilirim?
IronOCR ile OCR güvenini sadece bir satır kodla alabilirsiniz: double confidence = new IronOcr.IronTesseract().Read('input.png').Confidence; Bu, IronOCR'nin metin tanıma konusunda ne kadar emin olduğunu gösteren 0-100 arasında bir güven skoru döndürür.
Farklı güven skoru aralıkları ne anlama gelir?
IronOCR güven skorları belirtir: 90-100 (Mükemmel) metin son derece güvenilirdir; 80-89 (İyi) metin genel olarak doğrudur, hafif belirsizlikler vardır; 70-79 (Orta) metin bazı hatalar içerebilir; 70'in altında (Düşük) metin gözden geçirilmeli veya yeniden işlenmelidir.
Farklı metin öğeleri için güven düzeylerine nasıl erişirim?
IronOCR, birden çok detay seviyesinde güven düzeylerine erişmenizi sağlar - sayfalar, paragraflar, satırlar, kelimeler ve bireysel karakterler. OCR yaptıktan sonra, her seviyede güven özelliğine OcrResult nesne yapısı üzerinden erişebilirsiniz.
Güven skorlarıyla birlikte alternatif kelime önerilerini alabilir miyim?
Evet, IronOCR, birlikte güven skorları bulunan alternatif kelime seçenekleri sunan bir Choices özelliği sağlar. Bu özellik, OCR motorunun aynı metnin birden fazla olası yorumunu tanıdığı durumlarda yardımcı olur, akıllı doğrulama mantığını uygulamanıza olanak tanır.
Uygulamamda güven temelli doğrulamayı nasıl uygularım?
IronOCR'nin Okuma yöntemini kullandıktan sonra, OcrResult'un Confidence özelliğini kontrol edin. Güven eşiklerine dayalı şartlı mantık uygula - örneğin, 90'ın üzerindeki sonuçları otomatik olarak kabul edin, 70-90 arasındaki sonuçları gözden geçirin ve 70'in altındaki sonuçları yeniden işleyin veya manuel olarak doğrulayın.
What are character choices in IronOCR?
Character choices in IronOCR refer to alternative word choices and their relevance metrics provided during OCR. This feature is useful for handling ambiguities and understanding potential character variations in the text.
How can character choices aid in text recognition?
Character choices help resolve ambiguities by offering alternative interpretations for similar-looking characters and words. This is particularly beneficial when dealing with font variations, degraded text, and multiple languages.
What preprocessing techniques improve IronOCR text accuracy?
Preprocessing techniques such as deskewing, denoising, sharpening, and scaling can significantly enhance text accuracy by improving image quality before executing OCR processes with IronOCR.
How does IronOCR handle low confidence recognition results?
IronOCR allows you to filter and flag low-confidence recognition results for review. You can identify words with confidence scores below a certain threshold and address uncertainties by using validation or reprocessing strategies.

Curtis Chau, 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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.