C#'da OCR Kullanarak Makbuzlardan Nasıl Veri Çıkarılır
IronOCR, 125 dil desteği ve yerleşik görüntü ön işleme ile gelişmiş OCR teknolojisini kullanarak makbuz görüntülerinden metin çıkarmak için güçlü bir C# kütüphanesi sağlar ve otomatik gider takibi ve veri analizi yapmayı mümkün kılar.
Makbuzlar ve Otomasyon
Makbuzlar, günümüzün hızlı temposuna sahip dünyasında önemlidir. İster market alışverişi yapıyor olun ister dışarıda yemek yiyor olun, makbuzlar harcamayı takip etmeye ve bütçe yapmaya yardımcı olur. Bu arada, mağazalar makbuz tarayıcılarını satış verilerini analiz etmek için kullanır, bu da talep tahmin etmelerine ve veri çıkarma teknikleri ile envanteri yönetmelerine yardımcı olur.
Ancak, makbuzlar okumak zor olabilir ve hesaplamalar her zaman net değildir. Bütçeleme için manuel veri girişi zahmetli ve özellikle çok sayıda öğe olduğunda hata yapmaya meyillidir. Bir makbuzu kaybetmek aniden aylık aşırı harcamanızı bir bilinmeze dönüştürebilir. Geleneksel kağıt makbuzlar sıklıkla düşük baskı kalitesine, solan mürekkeplere ve termal kağıt bozulmasına sahiptir; bu da doğru çıkarım için OCR görüntü optimizasyonunu kritik hale getirir.
Bunu çözmek adına, bütçeleme ve finansal uygulamalar OCR (Optik Karakter Tanıma) teknolojisini benimsemiştir. Makbuzları dijital formata tarayarak, OCR hataları minimize eder, veri girişini otomatikleştirir, giderleri takip eder ve satın alma kalıplarını 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ı ele alır.
OCR, makinelere görüntülerden metin tanımlayıp çıkarmalarında yardımcı olmak için makine öğrenimini kullanır. Bu 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ık veya lekeler hatalara neden olabilir. İleri düzey sistemler, doğruluğu artırmak için bilgisayarlı görü tekniklerini kullanır. Belgelerin otomasyonu için okuma işlemini etkili bir şekilde işleyen ve optimize eden güvenilir bir OCR kütüphanesi seçmek kritik önemdedir.
Makbuz İşleme İçin Neden IronOCR'u Seçmeliyim?
IronOCR, standart Tesseract'tan farklı olarak, Tesseract 5 optimizasyonları ve .NET geliştiricileri için tasarlanmış özellikler içeren özel bir Tesseract OCR motoru üzerine inşa edilmiş bir C# kütüphanesidir. İşte onu öne çıkaran özellikler:
-
Çapraz Uyumluluk: .NET 8, 7, 6, 5 ve Framework 4.6.2+ ile çalışır. Windows, macOS, Azure ve Linux üzerinde çalıştırılabilir. Docker, AWS Lambda ve Azure Functions ile sorunsuz bir şekilde dağıtılır.
-
Esneklik ve Ölçeklenebilirlik: JPG, PNG ve GIF formatlarını işler. System.Drawing nesneleriyle entegre olur. Çok sayfalı TIFF'leri ve PDF akışlarını işler. Yüksek hacimli senaryolar için çoklu iş parçacığı desteği sunar.
-
Kullanım Kolaylığı ve Destek: Sağlam API ve 24/5 desteğe sahip iyi belgelenmiş bir yapı. Basit tek satır işlemler ve detaylı yapılandırma seçenekleri sunar. Kapsamlı sorun giderme kılavuzları içerir.
-
Çok Dilli Yetkinlikler: 125 uluslararası dil desteği bulunur. Ürün adlarını ve fiyatları etkili bir şekilde tanır. Belgelerde birden çok dili işleyebilir. Özel traineddata dosyalarını destekler.
- Gelişmiş Görüntü İşleme: Yerleşik filtreler makbuz kalitesini otomatik olarak artırır. Gürültü azaltma, yönlendirme düzeltme ve DPI optimizasyonunu içerir. Filtre Sihirbazı optimal ayarları otomatik olarak belirler.
Makbuz OCR'ı Uygulamama Nasıl Entegre Edebilirim?
Başlamak İçin Hangi Lisansı Almam Gerekiyor?
IronOCR'u kullanmadan önce bir lisans anahtarına ihtiyacınız olacak. Ücretsiz deneme buradan edinin. Lisanslama seçenekleri, farklı ekip büyüklükleri ve dağıtımlar için Lite, Plus ve Professional katmanlarını içerir. Lisans anahtarlarının nasıl uygulanacağı konusunda belgelere bakın burada.
// 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 yapılandırma amacıyla Web.config dosyasında ayarlayın. Lisans sistemi, büyüdükçe genişletmeler ve yükseltmeler destekler.
IronOCR ile Süpermarket Makbuzunu Nasıl Okurum?
Akıllı telefonlarla süpermarket makbuzlarını tarayan, ürün isim ve fiyatlarını çıkararak satın alma temelli sadakat puanları veren bir uygulama kullanarak IronOCR'u inceleyelim. Bu, görüntü yakalama, ön işleme, OCR yürütme ve sonuç güven puanları kullanarak veri doğrulaması içerir.
Tipik Bir Makbuz Görüntüsü Neye Benzer?

Yaygın makbuz zorlukları, termal kağıt kalitesi, değişen yazı tipleri, kalabalık düzenler ve katlama veya nemden kaynaklanan hasar içerir. IronOCR'un ön işlemesi, görüntü kalitesi düzeltme ve renk düzeltme teknikleri ile bu sorunları ele alır.
Fiş 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.
- konfigürasyon seçenekleri ile OCR motorunu (
IronTesseract) başlatın. - Makbuz görüntüsünü yüklemek için yeni bir OcrInput oluştur.
- Daha iyi doğruluk için ön işleme uygulayın.
- Metin çı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ı, ekran görüntülerini ve taralı belgeleri okuma desteği sağlar. Ayrıca, yapılandırılmış makbuzlardan tablo verilerini çıkarabilir.
Çıkarılmış Verilerin Doğruluğunu Nasıl Doğrularım?
Tutarlılığı sağlamak için çıkarılan verilerin güven düzeyini kontrol edin. IronOCR, çoklu seviyelerde kapsamlı güven metrikleri sağlar:
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. Veriyi nasıl işleyeceğinizi belirlemek için bu güven düzeylerini kullanın. Üretim sistemleri için, OCR işlemlerini izlemek için ilerleme izleme işlevini uygulayın.
Görüntü Ön İşleme ile OCR Doğruluğunu Nasıl Artırırım?
İşlemden önce, daha iyi sonuçlar için görüntüleri hazırlamak üzere bu yöntemleri kullanı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. Filtre Sihirbazı makbuzlarınız için en iyi filtre kombinasyonunu otomatik olarak bulur. renkli arka planlara sahip makbuzlar için, renk düzeltme gereklidir.
İleri seviye senaryolarda, toplam veya vergi bilgilerine odaklanmak için bölgeye özgü OCR gerekebilir. Barkodlu makbuzlar için metin çıkarımın yanı sıra barkod okuma özelliğini etkinleştirin.
Makbuz İşlemede IronOCR Kullanmanın Başlıca Faydaları Nelerdir?

Makbuz OCR teknolojisi, bütçeleme, dolandırıcılığın önlenmesi ve otomatik veri toplama konularında işletmelere ve bireylere yardımcı olur. IronOCR, doğruluk, hız ve mevcut platformlarla kolay entegrasyon sunarak, makbuz tarama çözümleri için ideal hale gelir.
Ana faydalar şunları içerir:
-
Performans Optimizasyonu: Çoklu iş parçacığı ve hız ayarlamaları, binlerce makbuzu verimli bir şekilde işler.
-
Esneklik ve İhracat: Makbuzları arama yapılabilir PDF'lere veya web entegrasyonu için hOCR HTML'ye dönüştürün.
-
Kurumsal Özellikler: Ölçeklenebilirlik için Azure, Docker ve Linux sunucularına dağıtın.
-
Özel Tanıma: Makbuzlar üzerindeki el yazısı notları okuyun ve tablo yapıları çıkarın.
- Hata Ayıklama Araçları: Hata ayıklama için metin vurgulama ve sonuç ihracı özellikleri sorun gidermeye yardımcı olur.
IronOCR'un deneme lisansını deneyin ve özelliklerini keşfedin. Kapsamlı belgeleme ve kod örnekleri makbuz OCR'ını hızlı bir şekilde uygulamanıza yardımcı olur.
Sıkça Sorulan Sorular
OCR teknolojisi, süpermarket makbuzlarının işlenmesini otomatikleştirmek için nasıl kullanılabilir?
OCR teknolojisi, taranmış makbuzları dijital verilere dönüştürerek süpermarket makbuzlarının işlenmesini otomatikleştirebilir. IronOCR'yi kullanarak, makbuzlar okunabilir ve metin otomatik olarak çıkarılabilir, bu da manuel veri girişine olan ihtiyacı azaltır ve insan hatalarını en aza indirir.
IronOCR, süpermarket makbuzlarının işlenmesi için hangi avantajları sunar?
IronOCR, çapraz platform uyumluluğu, birden fazla görüntü formatı desteği, kolay entegrasyon için sağlam bir API ve 125 dil işleme kapasitesi gibi özelliklerle süpermarket makbuzları işlemede birkaç avantaj sunar, bu da uluslararası makbuzlar için idealdir.
Süpermarket makbuzlarını okumak için bir C# uygulamasına IronOCR nasıl entegre edilir?
IronOCR'yi bir C# uygulamasına entegre etmek için bir lisans anahtarı edinmeniz, IronOcr kütüphanesini içe aktarmanız ve süpermarket makbuzlarının görüntülerinden metin okumak ve çıkarmak için IronTesseract motorunu kullanmanız gerekir.
Makbuz taramasında OCR doğruluğunu artıran hangi ön işleme teknikleridir?
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ü ortadan kaldırmaya ve görüntüleri gri tonlamalıya dönüştürmeye yardımcı olur, makbuzlardan metin çıkarımını iyileştirir.
OCR'de güven değerlendirmesi neden önemlidir ve nasıl uygulanır?
IronOCR'de güven değerlendirmesi önemlidir çünkü elde edilen verilerin doğruluğunu ölçer ve değerler 0 (düşük) ile 1 (yüksek) arasında değişir. Kullanıcıların OCR sonuçlarının güvenilirliğini değerlendirmesine yardımcı olur ve veri işleme kararlarını bilgilendirir.
IronOCR, çok dilli süpermarket makbuzları işleyebilir mi?
Evet, IronOCR 125 dilde OCR işlemeyi destekler ve çok dilli süpermarket makbuzlarını etkin bir şekilde yönetebilir.
IronOCR ile ilgilenen geliştiriciler için bir deneme sürümü mevcut mu?
Evet, IronOCR'nin ücretsiz bir deneme sürümü mevcuttur ve geliştiricilerin, satın almadan önce özelliklerini ve kapasitelerini keşfetmelerine olanak tanır.
Makbuz tarama için IronOCR'nin desteklediği platformlar hangileridir?
IronOCR, .NET platformları ile uyumludur, .NET 8, 7, 6, 5 ve Framework 4.6.2 sonrası dahil, ve Windows, macOS, Azure ve Linux ortamlarında çalışmayı destekler.
IronOCR'yi makbuz tarama işlemlerine entegre etmek neden uygun?
IronOCR, yüksek doğruluk, kullanıcı dostu arayüz, çapraz platform desteği ve farklı giriş formatları ve dillerini sorunsuz bir şekilde yönetme kapasitesi nedeniyle uygulamalara makbuz tarama işlevselliklerini entegre etmek için uygundur.



