C#'da OCR Kullanarak Makbuzlardan Nasıl Veri Çıkarılır
IronOCR, gelişmiş OCR teknolojisini kullanarak makbuz görüntülerinden metin çıkarmak için güçlü bir C# kütüphanesi sunar ve 125 dil desteği ve dahili görüntü ön işleme ile otomatik gider izleme ve veri analizi sağlar.
Makbuzlar ve Otomasyon
Makbuzlar günümüzün hızlı tempolu dünyasında önemlidir. İster market alışverişi yapıyor olun ister dışarıda yemek yiyor olun, makbuzlar harcamaları takip etmeye ve bütçelendirme konusunda yardımcı olur. Bu arada, mağazalar satış verilerini analiz etmek için makbuz tarayıcıları kullanır, bu da talebi tahmin etmelerine ve veri çıkarma teknikleri yoluyla envanteri yönetmelerine yardımcı olur.
Ancak, makbuzlar okumak zor olabilir ve hesaplamalar her zaman net olmayabilir. Bütçelendirme için manuel veri girişi sıkıcı ve hata yapmaya eğilimlidir, özellikle de birden çok madde varsa. Bir makbuzu kaybetmek, aniden aylık fazla harcamalarınızı bir sır haline getirebilir. Geleneksel kağıt makbuzlar genellikle kötü baskı kalitesine, solan mürekkebe ve termal kağıt bozulmasına sahiptir, bu da doğru çıkarım için OCR görüntü optimizasyonunu önemli kılar.
Bunu çözmek için, bütçelendirme ve finansal uygulamalar OCR (Optik Karakter Tanıma) teknolojisini benimsediler. Makbuzları dijital formata tarayarak, OCR hataları en aza indirir, veri girişini otomatikleştirir, harcamaları takip eder ve satın alma desenlerini ortaya çıkarır. Modern OCR çözümleri, geleneksel satış noktası çıktılarından barkod ve QR kod okuma yeteneklerine sahip dijital makbuzlara kadar çeşitli makbuz formatlarını yönetir.
OCR, makine öğrenimini kullanarak görüntülerden metin tanımlar ve çıkartır. Süreç, görüntü ön işleme, karakter segmentasyonu, desen tanıma ve doğrulama içerir. Ancak, OCR mükemmel değildir - bulanıklıklar veya lekeler hatalara yol açabilir. Gelişmiş sistemler, doğruluğu artırmak için bilgisayarlı görü teknikleri kullanır. Başarılı belge otomasyonu için verimli bir şekilde işlem yapan ve okuma optimizasyonu sağlayan güvenilir bir OCR kütüphanesi seçmek önemlidir.
Makbuz İşleme İçin Neden IronOCR'yi Tercih Etmeliyim?
IronOCR, özelleştirilmiş bir Tesseract OCR motoru üzerine kurulmuş bir C# kütüphanesidir. Standart Tesseract'ın aksine, IronOCR, .NET geliştiricileri için özel olarak tasarlanmış Tesseract 5 optimizasyonları ve özellikleri içerir. Öne çıkmasını sağlayan şunlardır:
-
Çapraz Uyum: .NET 8, 7, 6, 5 ve Framework 4.6.2+ ile çalışır. Windows, macOS, Azure ve Linux üzerinde çalışır. Docker, AWS Lambda ve Azure Functions üzerine sorunsuz bir şekilde dağıtılır.
-
Esneklik ve Ölçeklenebilirlik: JPG, PNG ve GIF formatlarını işler. System.Drawing nesneleri ile entegre olur. Çok sayfalı TIFF'leri ve PDF akışlarını işler. Yüksek hacimli senaryolar için çoklu iş parçacığını destekler.
-
Kullanım Kolaylığı ve Destek: İyi belgelenmiş güçlü API ve 24/5 destek. Basit bir satırlık işlemler ve detaylı yapılandırma seçenekleri sunar. Kapsamlı sorun giderme kılavuzları içerir.
-
Çok Dilli Yetenekler: 125 uluslararası dili destekler. Ürün adlarını ve fiyatlarını etkili bir şekilde tanır. Bir belgede birden çok dili işleyebilir. custom traineddata dosyalarını destekler.
- Gelişmiş Görüntü İşleme: Dahili filtreler makbuz kalitesini otomatik olarak artırır. Gürültü azaltma, yönlendirme düzeltmesi ve DPI optimizasyonu içerir. Filter Wizard optimal ayarları otomatik olarak belirler.
Uygulamama Makbuz OCR'sini Nasıl Uygularım?
Başlamak İçin Hangi Lisansı Almalıyım?
IronOCR'yi kullanmadan önce bir lisans anahtarına ihtiyaçınız olacak. Ücretsiz bir deneme sürümünü buradan alın. Lisanslama seçenekleri farklı ekip boyutları ve dağıtımlar için Lite, Plus ve Professional seviyelerini içerir. Lisans anahtarlarının uygulanması için belgelere bakın.
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
' Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
Web uygulamaları için, lisans anahtarını merkezi konfigürasyon için Web.config içinde ayarlayın. Lisans sistemi büyüdükçe uzantı ve yükseltmeleri destekler.
IronOCR ile Süpermarket Makbuzunu Nasıl Okurum?
IronOCR'yi akıllı telefonlarla süpermarket makbuzlarını tarayan, ürün adlarını ve fiyatlarını çıkararak yapılan alışverişlere göre sadakat puanı kazandıran bir uygulamada kullanmayı keşfedelim. Bu, görüntü yakalama, ön işleme, OCR yürütme ve sonuç güven skoru kullanarak veri doğrulama işlemlerini içerir.
Tipik Bir Makbuz Görüntüsü Nasıl Görünür?

Yaygın makbuz zorlukları arasında termal kağıt kalitesi, değişen yazı tipleri, kalabalık düzenler ve katlama veya nemden kaynaklanan hasar bulunur. IronOCR'nin ön işleme aşaması, bu zorlukları görüntü kalitesi düzeltme ve renk düzeltme teknikleri ile ele alır.
Makbuz Verilerini Çıkarmak İçin Hangi C# Koduna İhtiyacım Var?
using IronOcr;
class ReceiptScanner
{
static void Main()
{
// Set the license key for IronOCR
IronOcr.License.LicenseKey = "YOUR-KEY";
// Instantiate OCR engine with optimal settings for receipts
var ocr = new IronTesseract();
// Configure for receipt-specific text
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Apply preprocessing for better accuracy
inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.Contrast(1.2);
// Perform OCR on the loaded image
OcrResult result = ocr.Read(inputPhoto);
// Output the text extracted from the receipt
string text = result.Text;
Console.WriteLine(text);
// Extract specific data using OcrResult features
foreach (var line in result.Lines)
{
if (line.Text.Contains("TOTAL"))
{
Console.WriteLine($"Total Found: {line.Text}");
}
}
}
}
using IronOcr;
class ReceiptScanner
{
static void Main()
{
// Set the license key for IronOCR
IronOcr.License.LicenseKey = "YOUR-KEY";
// Instantiate OCR engine with optimal settings for receipts
var ocr = new IronTesseract();
// Configure for receipt-specific text
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Apply preprocessing for better accuracy
inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.Contrast(1.2);
// Perform OCR on the loaded image
OcrResult result = ocr.Read(inputPhoto);
// Output the text extracted from the receipt
string text = result.Text;
Console.WriteLine(text);
// Extract specific data using OcrResult features
foreach (var line in result.Lines)
{
if (line.Text.Contains("TOTAL"))
{
Console.WriteLine($"Total Found: {line.Text}");
}
}
}
}
Imports IronOcr
Class ReceiptScanner
Shared Sub Main()
' Set the license key for IronOCR
IronOcr.License.LicenseKey = "YOUR-KEY"
' Instantiate OCR engine with optimal settings for receipts
Dim ocr As New IronTesseract()
' Configure for receipt-specific text
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- "
ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\:;""'<>?"
Using inputPhoto As New OcrInput()
inputPhoto.LoadImage("supermarketexample.jpg")
' Apply preprocessing for better accuracy
inputPhoto.DeNoise()
inputPhoto.ToGrayScale()
inputPhoto.Contrast(1.2)
' Perform OCR on the loaded image
Dim result As OcrResult = ocr.Read(inputPhoto)
' Output the text extracted from the receipt
Dim text As String = result.Text
Console.WriteLine(text)
' Extract specific data using OcrResult features
For Each line In result.Lines
If line.Text.Contains("TOTAL") Then
Console.WriteLine($"Total Found: {line.Text}")
End If
Next
End Using
End Sub
End Class
Kod şunları gösterir:
- IronOcr kütüphanesini içe aktarın.
- Yapılandırma seçenekleri ile
IronTesseractOCR motorunu başlatın. - Makbuz görüntüsünü yüklemek için yeni bir OcrInput oluşturun.
- Daha iyi doğruluk için ön işlemeyi uygulayın.
- Metni çıkarmak için
Readyöntemini kullanın. - Yapılandırılmış veri için OcrResult sınıfı kullanarak sonuçları işleyin.
Farklı makbuz formatları için, IronOCR fotoğrafları okumayı, ekran görüntülerini okumayı ve tarayıcı belgelerini okumayı destekler. Ayrıca yapılandırılmış makbuzlardan tablo verilerini de çıkartabilir.
Çıkarılan Verilerin Doğruluğunu Nasıl Doğrularım?
Tutarlılığı sağlamak için, çıkarılan verilerin güven seviyesini kontrol edin. IronOCR, birden fazla düzeyde kapsamlı güven metrikleri sunar:
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");
// Check confidence for individual elements
foreach (var word in result.Words)
{
if (word.Confidence < 80)
{
Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
}
}
// Validate numeric values
foreach (var block in result.Blocks)
{
if (block.Text.Contains("$"))
{
Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
}
}
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");
// Check confidence for individual elements
foreach (var word in result.Words)
{
if (word.Confidence < 80)
{
Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
}
}
// Validate numeric values
foreach (var block in result.Blocks)
{
if (block.Text.Contains("$"))
{
Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
}
}
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
Console.WriteLine($"Overall Confidence: {result.Confidence}%")
' Check confidence for individual elements
For Each word In result.Words
If word.Confidence < 80 Then
Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)")
End If
Next
' Validate numeric values
For Each block In result.Blocks
If block.Text.Contains("$") Then
Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)")
End If
Next
Confidence özelliği istatistiksel doğruluğu 0 (düşük) ile 100 (yüksek) arasında ölçer. Verileri nasıl işleyeceğinizi belirlemek için bu güven seviyelerini kullanın. Üretim sistemleri için, OCR operasyonlarını izlemek amacıyla ilerleme takibini uygulayın.
Görüntü Ön işleme ile OCR Doğruluğunu Nasıl Artırabilirim?
İşlem yapmadan önce, daha iyi sonuçlar için bu yöntemleri kullanarak görüntüleri hazırlayın:
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");
// Basic preprocessing
inputPhoto.DeNoise(); // Removes noise from the image
inputPhoto.ToGrayScale(); // Converts image to grayscale
inputPhoto.Contrast(1.5); // Enhance contrast for faded receipts
inputPhoto.Sharpen(); // Improve text clarity
// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5); // Correct slight rotation
inputPhoto.Deskew(); // Automatically straighten receipt
inputPhoto.Scale(200); // Upscale low-resolution images
// Handle specific receipt issues
if (receiptIsDamaged)
{
inputPhoto.Dilate(); // Thicken thin text
inputPhoto.Erode(); // Reduce text bleeding
}
// For colored or patterned backgrounds
inputPhoto.Binarize(); // Convert to pure black and white
inputPhoto.Invert(); // Handle white text on dark background
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");
// Basic preprocessing
inputPhoto.DeNoise(); // Removes noise from the image
inputPhoto.ToGrayScale(); // Converts image to grayscale
inputPhoto.Contrast(1.5); // Enhance contrast for faded receipts
inputPhoto.Sharpen(); // Improve text clarity
// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5); // Correct slight rotation
inputPhoto.Deskew(); // Automatically straighten receipt
inputPhoto.Scale(200); // Upscale low-resolution images
// Handle specific receipt issues
if (receiptIsDamaged)
{
inputPhoto.Dilate(); // Thicken thin text
inputPhoto.Erode(); // Reduce text bleeding
}
// For colored or patterned backgrounds
inputPhoto.Binarize(); // Convert to pure black and white
inputPhoto.Invert(); // Handle white text on dark background
Bu ön işleme adımları, çıkarım doğruluğunu artırır. Filter Wizard makbuzlarınız için en iyi filtre kombinasyonunu otomatik olarak bulur. Renkli arka planlara sahip makbuzlar için, renk düzeltmesi esastır.
Gelişmiş senaryolar, toplamlar veya vergi bilgilerine odaklanmak için bölgeye özgü OCR gerektirebilir. Barkodlara sahip makbuzlar için, metin çıkarımı ile birlikte barkod okumasını etkinleştirin.
Makbuz İşleminde IronOCR Kullanmanın Başlıca Avantajları Nelerdir?

Makbuz OCR teknolojisi, işletmeler ve bireyler için bütçe planlaması, sahtecilik önleme ve otomatik veri toplama konularında yardımcı olur. IronOCR, doğruluk, hız ve mevcut platformlarla kolay entegrasyon sunarak makbuz tarayıcı çözümleri için ideal hale getirir.
Anahtar faydalar şunlardır:
-
Performans Optimizasyonu: Çoklu iş parçacığı ve hız ayarlaması, binlerce makbuzun verimli bir şekilde işlenmesini sağlar.
-
Esnek Veri Çıkışı: Makbuzları arama yapılabilir PDF'lere veya web entegrasyonu için hOCR HTML formatına dönüştürün.
-
Kurumsal Özellikler: Azure, Docker ve Linux sunucularına dağıtım yaparak ölçeklenebilirlik sağlayın.
-
Özel Tanıma: Makbuzlar üzerindeki el yazısı notları okuyun ve tablo yapılarını çıkarın.
- Hata Ayıklama Araçları: Metin vurgulama görselleştirmesi ve sonuçları dışa aktarma özellikleri hataların giderilmesine yardımcı olur.
Özelliklerini keşfetmek için IronOCR'nin deneme lisansını deneyin. Kapsamlı dokümantasyon ve kod örnekleri makbuz OCR işlemini hızlı bir şekilde uygulamanıza yardımcı olur.
Sıkça Sorulan Sorular
OCR teknolojisi, süpermarket fişlerinin işlenmesini otomatik hale getirmek için nasıl kullanılabilir?
OCR teknolojisi, süpermarket fişlerini taranmış fişleri dijital verilere dönüştürerek otomatikleştirebilir. IronOCR kullanarak, fişler okunabilir ve metin otomatik olarak çıkarılabilir, manuel veri girişini azaltarak insan hatalarını en aza indirir.
IronOCR'un süpermarket fişlerini işlemek için sunduğu avantajlar nelerdir?
IronOCR, süpermarket fişlerini işleme konusunda birkaç avantaj sunar; platformlar arası uyumluluk, birden fazla görüntü formatı desteği, kolay entegrasyon için sağlam bir API ve 125 dile kadar işlem yapabilme kapasitesi, bu sayede uluslararası fişler için idealdir.
IronOCR'u süpermarket fişlerini okumak için bir C# uygulamasına nasıl entegre edersiniz?
IronOCR'u bir C# uygulamasına entegre etmek için bir lisans anahtarı edinmeniz, IronOcr kütüphanesini içe aktarmanız ve süpermarket fişlerinden metin okumak ve çıkarmak için IronTesseract motorunu kullanmanız gerekir.
Fiş taramalarında OCR doğruluğunu artıran ön işleme teknikleri nelerdir?
IronOCR, OCR doğruluğunu artırmak için DeNoise ve ToGrayScale gibi ön işleme teknikleri sağlar. Bu teknikler, görüntü gürültüsünü gidermeye ve görüntüleri gri tonlamaya dönüştürmeye yardımcı olur, böylece fişlerden metin çıkarma işlemini geliştirir.
OCR'da güven testinin önemi nedir ve nasıl uygulanır?
IronOCR'da güven testi, çıkarılan verilerin doğruluğunu ölçtüğü için önemlidir, 0 (düşük) ile 1 (yüksek) arasında değişen değerlerle. Bu, kullanıcıların OCR sonuçlarının güvenilirliğini değerlendirmelerine ve veri işleme kararlarını bilgilendirmelerine yardımcı olur.
IronOCR çok dilli süpermarket fişlerini işleyebilir mi?
Evet, IronOCR 125 dile kadar OCR işlemini destekler, bu sayede çok dilli süpermarket fişlerini etkili bir şekilde işleyebilir.
IronOCR ile ilgilenen geliştiriciler için bir deneme sürümü mevcut mu?
Evet, geliştiricilerin özelliklerini ve kapasitesini incelemesi için IronOCR'un ücretsiz bir deneme sürümü mevcuttur, satın almadan önce.
IronOCR hangi platformlarda fiş taramasını destekliyor?
IronOCR, .NET platformlarıyla uyumludur, .NET 8, 7, 6, 5 ve Framework 4.6.2 ve sonrası dahil olmak üzere, Windows, macOS, Azure ve Linux ortamlarında çalışmayı destekler.
IronOCR'u uygulamalara entegre etmek için uygun kılan nedir?
IronOCR, yüksek doğruluk, kullanım kolaylığı, platformlar arası destek ve çeşitli giriş formatlarını ve dillerini sorunsuz bir şekilde işleme kabiliyeti sayesinde uygulamalara fiş taramayı entegre etmek için uygundur.



