C#'da Gerçekten Yararlı Veri Çıkaran Bir Fiş OCR API'si Oluşturun
Fiş verilerini elle girmek, geliştiricilerin kariyer tercihlerine sorgulamalarına neden olan türden sıkıcı ve hataya açık bir iştir. Fiş OCR API'si, optik karakter tanıma kullanarak fiş görüntülerinden metni otomatik olarak çıkarır ve uygulamaların gerçekten kullanabileceği yapılandırılmış verilere dönüştürerek manuel veri girişini ortadan kaldırır. Amaç, masraf yönetimi otomasyonu, muhasebe yazılımı entegrasyonu veya sadakat programlarını güçlendirmek olsun, sağlam bir fiş OCR çözümü ağır yükü üstlenir.
Bu makalede, IronOCR kullanarak C# içinde bir fiş OCR API'si kurmanın nasıl yapılabileceğini göstereceğiz. Bu, tamamen yerel ortamda çalışan, fiş görüntülerini yerel olarak işleyen ve hassas fiş verilerini üçüncü taraf bulut hizmetlerine göndermeyi gerektirmeyen bir .NET kütüphanesidir. Bu, doğruluktan ödün vermeden tam veri koruması anlamına gelir.
IronOCR'un ücretsiz deneme sürümüyle başlayın, böylece aşağıdaki örneklerle birlikte çalışabilirsiniz.
Fiş OCR Teknolojisi Nasıl Çalışır?

Fiş OCR (Optik Karakter Tanıma), bir fiş görüntüsündeki basılı metni makine tarafından okunabilir bir metne dönüştürerek fişlerden veri çıkarmayı otomatik hale getirir. Arka planda, AI teknolojileri ve derin öğrenme modelleri, fişin görsel düzenini analiz eder, metin bölgelerini tanımlar ve karakterleri eşsiz bir doğrulukla tanır, genellikle temiz taramalarda %99 ve üzeri değerlere ulaşır.
Modern fiş OCR API'leri, makine öğrenimini kullanarak tüccar adını, tarihi, bireysel satır öğelerini, toplamları ve vergi tutarlarını çeşitli fiş format ve düzenlerinden ayıklamak için kullanır. Derin öğrenme teknikleri, bu modellerin büyük veri setlerinden öğrenerek sürekli olarak gelişmesini, zamanla yeni fiş tasarımlarına ve dillere uyum sağlamasını sağlar. Sonuç, yavaş, hatalara eğilimli manuel girişin yerini alacak hızlı, güvenilir fiş veri çıkarımıdır.
Fiş tarama teknolojisi, birçok dili işleyebilir, JPG, PNG ve PDF gibi formatlarda belgeleri işleyebilir ve sonuçları yapılandırılmış JSON gibi standart bir formatta teslim ederek mevcut sistemlerle sorunsuz entegrasyon sağlar.
C# Kullanarak Fiş Verileri Nasıl Çıkarılır?
C#'ta fişlerden veri çıkarmak, IronOCR ile sadece birkaç satırlık kod gerektirir. Çekirdek iş akışı, bir fiş görüntü dosyasını yükler, OCR motorunu çalıştırır ve çıkarılan tüm metni döndürür.
using IronOcr;
// Initialize the OCR engine for receipt scanning
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
// Load the receipt image for data extraction
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Extract text from the receipt
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
// Initialize the OCR engine for receipt scanning
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
// Load the receipt image for data extraction
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Extract text from the receipt
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr
' Initialize the OCR engine for receipt scanning
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
' Load the receipt image for data extraction
Using input As New OcrInput()
input.LoadImage("receipt.jpg")
' Extract text from the receipt
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
Çıktı

IronTesseract sınıfı, Tesseract 5 üzerine kurulu, yerel C++ entegrasyonunu ve manuel kurulumu ortadan kaldıran bir yönetimli sarıcı olan ana OCR motorudur. OcrLanguage.English ayarı, motorun hangi dil modelini kullanacağını belirtir, ancak IronOCR, dünyanın dört bir yanından makbuzları işlemek için 125'ten fazla dili destekler.
OcrInput neredeyse her yaygın formatta (JPG, PNG, BMP, TIFF, GIF, WEBP) ve ayrıca PDF olarak makbuz görüntülerini kabul eder. Read yöntemi, gerçek OCR işlemini gerçekleştirir ve yalnızca düz metin değil, aynı zamanda paragraflar, satırlar, kelimeler ve bireysel karakterlere yapılandırılmış erişim sağlayan bir OcrResult nesnesi döndürür. Bu, detaylı seviyede veri çıkarımına ihtiyaç duyan fiş ayrıştırma iş akışları için idealdir.
Görüntü Ön İşleme, Fiş Tarama Hatalarını Nasıl Azaltabilir?
Gerçek dünyadaki fiş görüntüleri nadiren mükemmeldir. Kırışmış kağıt, zayıf aydınlatma ve hafif döndürme, verilerin çıkarılması sırasında hatalara neden olabilecek gürültü ekler. OCR çalıştırılmadan önce görüntü ön işleme, doğruluğu büyük ölçüde artırır ve aksi takdirde fiş verilerinizi bozacak hataları azaltmaya yardımcı olur.
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Preprocess the receipt image to improve OCR accuracy
input.DeNoise(); // Remove digital noise from the scanned receipt
input.Deskew(); // Straighten a tilted or rotated receipt capture
input.Sharpen(); // Enhance text clarity for better recognition
OcrResult result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("receipt.jpg");
// Preprocess the receipt image to improve OCR accuracy
input.DeNoise(); // Remove digital noise from the scanned receipt
input.Deskew(); // Straighten a tilted or rotated receipt capture
input.Sharpen(); // Enhance text clarity for better recognition
OcrResult result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("receipt.jpg")
' Preprocess the receipt image to improve OCR accuracy
input.DeNoise() ' Remove digital noise from the scanned receipt
input.Deskew() ' Straighten a tilted or rotated receipt capture
input.Sharpen() ' Enhance text clarity for better recognition
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine($"Confidence: {result.Confidence}%")
Console.WriteLine(result.Text)
End Using

Görüntü Ön İşleme Fonksiyonları
Çıkarım doğruluğunu artırmak için, IronOCR, OCR süreci başlamadan önce görüntüleri temizlemek için çeşitli yerleşik filtreler sağlar.
| Fonksiyon | Amaç |
|---|---|
DeNoise() |
Taraşmış belgelerde yaygın olan şerit ve dijital artefaktları kaldırır. |
Deskew() |
Eğik veya eğilmiş görüntüler için döndürmeyi algılar ve düzeltir. |
Sharpen() |
Soluk metni daha okunaklı hale getirmek için bulanık kenarları güçlendirir. |
Binarize() |
Karşıtlığı artırmak için görüntüleri siyah-beyaz dönüştürür. |
ToGrayScale() |
OCR motoru için görüntüyü basitleştirmek için renk verilerini kaldırır. |
EnhanceResolution() |
Düşük DPI görüntülerini karakter tanımayı iyileştirecek şekilde yükseltir. |
Güven Skorları ile Veri Doğrulama
Basit metin çıkarmanın ötesinde, Confidence özelliği OcrResult üzerinde çıktı güvenilirliğini belirten bir yüzde skoru döndürür.
Büyük hacimleri işleyen otomatik fiş işleme boru hatları için bu puan paha biçilmezdir. Sistem, 90%'ın üzerindeki tüm sonuçları otomatik olarak işleyebilirken, düşük güvenilirlikteki sonuçları manuel inceleme için işaretler. Bu, her bir fişi kontrol etmek için bir insana ihtiyaç duymadan yüksek veri kalitesini sağlar.
OCR Metinlerinden Belirli Fiş Alanları Nasıl Ayrıştırılabilir?
Bir OCR motorundan ham metin elde etmek harika bir başlangıçtır, ama bu sadece başlangıçtır. Bir harcama raporu veya gerçek zamanlı işleme sahip bir muhasebe aracı oluşturuyorsanız, sadece bir "metin bloğu"na değil, tarih, tüccar adı ve nihai toplam gibi belirli veri alanlarına ihtiyacınız var.
IronOCR görüntüyü okuma işini yaptıktan sonra, standart C# mantığı ve Düzenli İfadeler (Regex) ile fiş API'mizde aradığımız belirli alanları ayıklayabiliriz.
using IronOcr;
using System.Text.RegularExpressions;
var ocr = new IronTesseract();
using var input = new OcrInput("receipt.jpg");
input.DeNoise();
OcrResult result = ocr.Read(input);
string ocrText = result.Text;
// Parse the date from receipt data
var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}");
string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found";
// Parse the total amount
var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})");
string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found";
Console.WriteLine($"Date: {receiptDate}");
Console.WriteLine($"Total: ${total}");
using IronOcr;
using System.Text.RegularExpressions;
var ocr = new IronTesseract();
using var input = new OcrInput("receipt.jpg");
input.DeNoise();
OcrResult result = ocr.Read(input);
string ocrText = result.Text;
// Parse the date from receipt data
var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}");
string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found";
// Parse the total amount
var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})");
string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found";
Console.WriteLine($"Date: {receiptDate}");
Console.WriteLine($"Total: ${total}");
Imports IronOcr
Imports System.Text.RegularExpressions
Dim ocr As New IronTesseract()
Using input As New OcrInput("receipt.jpg")
input.DeNoise()
Dim result As OcrResult = ocr.Read(input)
Dim ocrText As String = result.Text
' Parse the date from receipt data
Dim dateMatch As Match = Regex.Match(ocrText, "\d{1,2}/\d{1,2}/\d{2,4}")
Dim receiptDate As String = If(dateMatch.Success, dateMatch.Value, "Not found")
' Parse the total amount
Dim totalMatch As Match = Regex.Match(ocrText, "(?i)total[\s:$]*(\d+\.\d{2})")
Dim total As String = If(totalMatch.Success, totalMatch.Groups(1).Value, "Not found")
Console.WriteLine($"Date: {receiptDate}")
Console.WriteLine($"Total: ${total}")
End Using

Bu örnek, ham OCR fiş metninden tarihi ve toplamı otomatik olarak çıkarmak için basit regex modelleri kullanır. Tarih modeli, 15/03/2026 gibi yaygın fiş tarih formatları ile eşleşirken, toplam modeli "TOTAL" kelimesini ve ardından bir dolar miktarını arar. Üretim sistemlerinde, bu modeller karşılaşılan belirli fiş formatlarına uyacak şekilde ayarlanmalıdır.
Satır öğesi verilerini çıkarmak için - bireysel ürün adları, miktarlar ve fiyatlar, OCR metnini satırlara göre bölün ve satır öğesi satırlarını tanıyan modelleri uygulayın. Bu yaklaşım, JSON formatı çıktısı, harcama yönetimi iş akışları ve muhasebe yazılımı ile doğrudan entegrasyon için yapılandırılmış veriye dönüştürmek için fiş görüntülerini uygun bir şekilde çalışır. Farklı düzenlere sahip gelişmiş makbuz parçalaması için, belirli bölümlerden satır öğesi verilerini çıkarmak için bölge bazlı OCR okumasını (ContentArea dikdörtgenler kullanarak) IronOCR'un belge yapı özellikleri ile birleştirmeyi düşünün.
Regex ile Bir Geliştiricinin Gerçeklik Kontrolü
İtiraf edelim: Regex, başlamanın "hızlı ve kirli" bir yoludur, ancak kusursuz değildir. Gerçek dünya fişleri karmakarışıktır. Bir tüccar "TOTAL" yazdırabilir, bir diğeri "Bakiye Ödemesi" diyebilir ve üçüncüsü ise tam dolar işaretinin üzerinde bir kahve lekesi olabilir.
Bunu üretime taşıyorsanız, sadece tek bir modele güvenmeyin. Bunu daha sağlam hale getirmek için işte nasıl yapılacağı:
- Güven Skorlarını Kullanın: IronOCR, okuduğu her kelime için bir güven yüzdesi verir. "Toplam" miktarındaki güven puanı %80'in altındaysa, muhtemelen o fişi bir insanın tekrar kontrol etmesi için işaretlemelisiniz.
- Veriyi Doğrulama: Sadece dizeye güvenmeyin. "Toplam"ı ondalık sayı olarak ayıklamaya çalışın. Eğer başarısız olursa, OCR'niz bir "5"i "S" olarak yanlış okumuş olabilir.
- Konum Önemlidir: Karmaşık düzenler için, sayfa üzerindeki konumuna göre metni bulmak için IronOCR'un
OcrResult.BlocksveyaLineskullanın. "Toplam" her zaman sağ altta ise, bu belirli alanı hedeflemek, fişteki diğer sayılardan gelen "gürültüyü" azaltır.
Bir Fiş OCR API'si Masraf Yönetim Sistemleriyle Nasıl Entegre Edilir?
Bir fiş OCR API, yapılandırılmış fiş verilerini doğrudan iş sistemlerine beslediğinde gerçekten güçlü hale gelir. IronOCR, bir ASP.NET web servisi, masaüstü harcama takipçisi veya toplu olarak fişleri işleyen arka plan çalışanı olsun, herhangi bir .NET uygulaması ile sorunsuz bir şekilde entegre olan geliştirici dostu bir API sağlar.
API, çıkarılan metni ayrı sayfalara, paragraflara ve satırlara erişim sağlayan bir OcrResult nesnesi olarak döndürür. Bu, OCR metnini yapılandırılmış JSON'a ayrıştıran, verileri doğrulayan (kopya tespiti ve satın alma doğrulamasını içeren) ve bu verileri muhasebe yazılımına, ERP sistemlerine veya veri tabanlarına ileten bir fiş işleme hattı oluşturmayı kolaylaştırır.
IronOCR tüm OCR işlemelerini yerel olarak çalıştırır, bulut bağımlılığı yoktur, ücretsiz plan deneme için kredi kartı gerekmez ve hassas finansal belgeler üzerinde tam kontrol sağlar. Bu yerel-öncelikli yaklaşım, fiş OCR API'sinin büyük miktarlarda dijital fişi gecikme endişesi olmadan işlemesini sağlar ve sıkı uyumluluk gereksinimlerine sahip farklı endüstrilerdeki kuruluşlar için doğal veri koruması sağlar. Kütüphane kapsamlı dokümantasyon sunar ve mevcut sistemlerle NuGet aracılığıyla sorunsuz entegrasyon sağlar, performansın yanı sıra basitliği de önemseyen ekipler için pragmatik bir seçenek yapar.
Tam bir fiş tarama çözümü oluşturmak isteyen geliştiriciler için, IronOCR ayrıca barkod ve QR kod okumayı, arama yapılabilir PDF oluşturmayı ve çok sayfalı belge işlemeyi destekler, hepsi aynı kütüphanenin içinde.
Bugün Fiş Verisi Çıkarmayı Otomatikleştirmeye Başlayın
IronOCR ile C#'ta bir fiş OCR API'si oluşturmak, manuel veri girişinin acısını ortadan kaldırır ve bunu hızlı, doğru, otomatik veri çıkarımı ile değiştirir. Temel fiş taramadan, alan seviyesinde çıkarma ile gelişmiş fiş ayrıştırmaya kadar kütüphane, fiş görüntülerini değerli, eyleme geçirilebilir yapılandırılmış veriye dönüştürmek için gereken her şeyi sağlar, hepsi belgeleri yerinden dışarı göndermeden.
Güçlü ön işleme filtreleri, temiz bir .NET API, makine öğrenimi ile geliştirilmiş tanıma ve yerel işlemenin birleşimi, IronOCR'yi masraf yönetimi, fiş işlemeyfiker, ve fişlerden verileri güvenilir bir şekilde ve ölçekli bir şekilde çıkarması gereken her iş akışı için güçlü bir uyum haline getirir.
Fiş iş akışlarınızdan manuel girişleri ortadan kaldırmaya hazır mısınız? IronOCR lisanslama seçeneklerini keşfedin ekibiniz için doğru planı bulmak adına veya ücretsiz bir deneme ile başlayın sonuçları birinci elden görmek için.
Install-Package IronOcr
Sıkça Sorulan Sorular
Fiş OCR API nedir?
Fiş OCR API, fiş görüntülerinden metin çıkarmak ve bunu yapılandırılmış verilere dönüştürmek için optik karakter tanıma teknolojisini kullanan bir araçtır, bu da manuel veri girişini ortadan kaldırır.
IronOCR, fiş veri çıkarımı için nasıl kullanılabilir?
IronOCR, fiş görüntülerinden yapılandırılmış veri çıkarımı için gelişmiş OCR yeteneklerini sunarak süreci sorunsuz ve doğru kılar.
C#'da fiş OCR API kullanmanın faydaları nelerdir?
C#'da fiş OCR API kullanmak, fişlerden veri çıkarma sürecini kolaylaştırır, manuel girişle ilişkili hataları azaltır ve harcama yönetimi ve muhasebe gibi uygulamalarda verimliliği artırır.
IronOCR muhasebe yazılımlarıyla entegre olabilir mi?
Evet, IronOCR, fiş verilerinin çıkarımı ve işlenmesini otomatikleştirerek, iş akışı verimliliğini ve doğruluğunu artırmak için muhasebe yazılımlarıyla entegre olabilir.
IronOCR, harcama yönetimi otomasyonu için uygun mudur?
IronOCR, fiş verilerini etkili bir şekilde çıkarıp işleyerek, manuel veri girişi için gereken zaman ve çabayı azaltarak, harcama yönetimi otomasyonu için idealdir.
IronOCR farklı fiş formatlarını nasıl işler?
IronOCR, geniş bir yelpazede fiş formatlarını tanımak ve işlemek üzere tasarlanmıştır, bu da fişin yerleşimi veya tasarımından bağımsız olarak doğru veri çıkarımı sağlar.
IronOCR'un fişlerden metin seçimi konusunda neden bu kadar doğru?
IronOCR, gelişmiş optik karakter tanıma algoritmalarını kullanarak karmaşık fiş görüntülerinden bile yüksek doğrulukla metin çıkarımını garanti eder.
IronOCR, sadakat programı uygulamaları için kullanılabilir mi?
Evet, IronOCR, fiş verilerini doğru bir şekilde çıkarıp işleme özelliğiyle sadakat programı uygulamaları için kullanılabilir, satın alma ve ödül takibi sağlar.
Fiş OCR API'yi uygulamak için hangi programlama dili kullanılır?
Fiş OCR API, IronOCR'un özelliklerinden faydalanarak etkili ve güvenilir veri çıkarım çözümleri geliştirmek için C# kullanılarak uygulanabilir.
IronOCR, fiş görüntülerinin yerel işlenmesini destekler mi?
Evet, IronOCR, fiş görüntülerinin yerel olarak işlenmesini destekleyerek, bulut hizmetlerine gerek duymadan verilerin güvenli ve etkin bir şekilde çıkarılmasını sağlar.



