IronOCR ile C#'ta Barkodlar ve QR Kodlar Nasıl Okunur
IronOCR, barkodları ve QR kodları C#'ta ReadBarCodes = true ayarı yaparak okur. Bu tek ayar, PDF'lerden ve görsellerden barkod değerlerinin otomatik olarak çıkarılmasını ve QR kodları, Code 128 ve Data Matrix dahil olmak üzere 20'den fazla barkod formatını destekleyerek düzenli metin tanımayı etkinleştirir.
Hızlı Başlangıç: PDF'den Anında Barkod Okuma
Tek bir ayar ile barkod algılamayı etkinleştirin ve PDF'leri IronOCR ile tarayın. Aşağıdaki kod, barkod okuma özelliğini nasıl açacağınızı, bir PDF'yi nasıl işleyeceğinizi ve kodlanan değerleri nasıl elde edeceğinizi gösterir.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin
PM > Install-Package IronOcr -
Bu kod parçasını kopyalayıp çalıştırın.
var result = new IronOcr.IronTesseract() { Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = true } }.Read(new IronOcr.OcrPdfInput("document.pdf")); foreach(var bc in result.Barcodes) Console.WriteLine(bc.Value); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile
IronOCR ile C#'ta Barkodlar ve QR Kodlar Nasıl Okunur
- Barkodları ve QR kodlarını okumak için bir C# kütüphanesi indirin.
- Hedef görseli ve PDF belgesini içe aktarın.
- Barkod okuma özelliğini,
ReadBarCodesözelliğini true olarak ayarlayarak etkinleştirin. Readmetodunu kullanarak OCR gerçekleştirin.- Algılanan metin ve barkod değerlerini çıktı olarak verin.
PDF Belgelerinden Barkodları Nasıl Okurum?
Okuma işlemini gerçekleştirmek için bir IronTesseract nesnesi oluşturun. Barkod algılamayı etkinleştirmek için ReadBarCodes özelliğini true olarak ayarlayın. PDF belgesini OcrPdfInput yapıcısını kullanarak içe aktarın. İçe aktarılan PDF üzerinde OCR gerçekleştirmek için `` yöntemini kullanın.
Bu PDF belgesini kullanarak bir örnek:
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.cs
using IronOcr;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Add PDF
using var imageInput = new OcrPdfInput("pdfWithBarcodes.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Output detected barcodes and text values
Console.WriteLine("Extracted text:");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("Extracted barcodes:");
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
Imports IronOcr
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True
' Add PDF
Dim imageInput = New OcrPdfInput("pdfWithBarcodes.pdf")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output detected barcodes and text values
Console.WriteLine("Extracted text:")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("Extracted barcodes:")
For Each barcode In ocrResult.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
Birden fazla barkod değeri barkodların altında görünür ve çıkarılan metne dahil edilir.
IronOCR Neden Hem Metin Hem de Barkod Değerlerini Çıkarır?
IronOCR'un çiftli çıkarımı, kapsamlı bir belge analizi sağlar. Hem metin hem de barkod içeren belgeleri işlerken, kütüphane standart OCR metin çıkarımı işlemi gerçekleştirirken aynı anda barkod sembolojilerini de kod çözer. Bu birleşik yaklaşım, birden fazla işlem geçişi veya ayrı kütüphanelere duyulan ihtiyaçı ortadan kaldırır.
Metin çıkarımı insan tarafından okunabilir öğeleri yakalarken, barkod algılama makine tarafından okunabilir verileri tanımlayıp kod çözer. Bu, barkod değerlerinin basılı metinle ilişkilendirildiği fatura, nakliye etiketleri veya envanter raporları gibi belgeler için faydalıdır. OcrResult sınıfı bu çıktıları ayırır—metne Text özelliği aracılığıyla ve barkod verilerine Barcodes koleksiyonu aracılığıyla erişin.
Hangi Barkod Biçimleri Destekleniyor?
IronOCR, 20'den fazla barkod formatını destekler:
1D Barkodlar:
- Code 128, Code 39, Code 93
- EAN-13, EAN-8
- UPC-A, UPC-E
- Codabar
- ITF (Aralıklı 2 of 5)
- MSI
- Plessey
2D Barkodlar:
- QR Kod
- Veri Matrisi
- PDF417
- Aztec Kodu
- MaxiCode
MİCR çeklerinin okunması veya kimlik belgelerinin işlenmesi gibi özel uygulamalar için, IronOCR'un barkod yetenekleri metin çıkarım özelliklerini tamamlar.
Barkod Okuma İçin OCR Yerine Özel Barkod Kütüphanelerini Ne Zaman Kullanmalıyım?
Şunlar olduğunda IronOCR'un entegre barkod okumasını seçin:
- Karışık İçerik İşleme: Belgeler hem metin hem de barkod içeriyorsa (nakliye etiketleri, faturalar veya tarama belgeleri)
- Tek Kütüphane Tercihi: Bağımlılıkları minimize etmek ve tek bir çözüm kullanmak istiyorsanız
- PDF İşleme: Zaten IronOCR'u PDF OCR metin çıkarımı için kullanıyorsanız
- Karmaşık Belge Düzenleri: Belgeler metin bölgeleri veya tablolar içinde yerleştirilmiş barkodlar içeriyorsa
Aşağıdaki durumlarda özel barkod kütüphanelerini kullanın:
- Yüksek hacimli sadece barkod içeren görüntüleri işlemek
- Gerçek zamanlı barkod taraması (< 50ms yanıt süresi) gerekliliği
- Özel algoritmalar gerektiren hasarlı veya düşük kaliteli barkodlarla çalışmak
- Kamera optimizasyonu ile mobil barkod taraması uygulamak
Belgelerden QR Kodları Nasıl Okurum?
Barkod okuma gibi, ReadBarCodes özelliğini true olarak ayarlayın. Dosya yolu dışında başka bir kod değişikliği gerekmez. Bu QR kodlarını içeren PDF belgesini işleyin:
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-qr-codes.cs
using IronOcr;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = true;
// Add PDF
using var imageInput = new OcrPdfInput("pdfWithQrCodes.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Output detected barcodes and text values
Console.WriteLine("Extracted text:");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("Extracted barcodes:");
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
Imports IronOcr
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable barcode reading
ocrTesseract.Configuration.ReadBarCodes = True
' Add PDF
Dim imageInput = New OcrPdfInput("pdfWithQrCodes.pdf")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output detected barcodes and text values
Console.WriteLine("Extracted text:")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("Extracted barcodes:")
For Each barcode In ocrResult.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
Aynı Yapılandırma Neden Hem Barkodlar Hem de QR Kodları İçin Çalışıyor?
IronOCR'un birleşik barkod algılama motoru tüm makine tarafından okunabilir kodları eşit şekilde ele alır. ReadBarCodes yapılandırması, biçime özgü ayarlar gerektirmeden hem 1D (doğrusal barkodlar) hem de 2D (QR kodlar, Veri Matrisi) formatlarını tanıyan kapsamlı bir semboloji dedektörünü etkinleştirir. Bu tasarım, uygulamayı basitleştirir ve yapılandırma karmaşıklığını azaltır.
Algılama algoritması otomatik olarak:
- Desen tanımaya dayanarak semboloji türünü tanımlar
- Uygun kod çözme algoritmalarını uygular
- Yönlendirme ve boyut varyasyonlarını ele alır
- Barkod tipinden bağımsız olarak sonuçları tutarlı bir formatta döndürür
Bu yaklaşım, Bilgisayarla Görü modeli eğitiminin birden fazla format üzerinde gerçekleştirilmesine benzer—evrensel algılama yetenekleri sağlamak için.
QR Kodları OCR ile Okurken Yaygın Sorunlar Nelerdir?
QR kodları işlerken karşılaşılan yaygın zorluklar şunlardır:
-
Çözünürlük Sorunları: PDF'lerdeki QR kodları en düşük modül boyutunun altında yeniden örneklenmiş olabilir. Uygun çözünürlüğün sağlanması için DPI ayarlarını kullanın (minimum 300 DPI önerilir).
- Görüntü Kalitesi: Taranmış QR kodları genellikle bulanıklık, parazit veya bozunmadan muzdariptir. Netliği artırmak için görüntü düzeltme filtrelerini uygulayın:
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();
var result = ocrTesseract.Read(input);
// Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = true;
var input = new OcrImageInput("qr-code-scan.jpg");
input.DeNoise();
input.Sharpen();
input.EnhanceResolution();
var result = ocrTesseract.Read(input);
' Apply filters to improve QR code readability
ocrTesseract.Configuration.ReadBarCodes = True
Dim input As New OcrImageInput("qr-code-scan.jpg")
input.DeNoise()
input.Sharpen()
input.EnhanceResolution()
Dim result = ocrTesseract.Read(input)
-
Yönelme Problemleri: Açılı QR kodları doğru şekilde çözümlenemeyebilir. Yanlış yönlenmiş belgeleri düzeltmek için sayfa dönmesi algılamayı etkinleştirin.
- Karışık İçerik Müdahalesi: QR kodları üstüne binen metin veya grafikler algılamayı engelleyebilir. Gerektiğinde QR kodu alanlarını izole etmek için kırpma bölgelerini kullanın.
QR Kod Tanıma Doğruluğunu Nasıl Artırabilirim?
Bu tekniklerle QR kod tanımasını optimize edin:
- Görüntüleri Ön İşleyin: Optimal iyileştirme ayarlarını belirlemek için Filtre Sihirbazını kullanın:
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts
var result = ocrTesseract.Read(input);
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
// Configure for better QR detection
var input = new OcrImageInput("document-with-qr.pdf");
input.TargetDPI = 300; // Ensure sufficient resolution
input.Binarize(); // Convert to black and white
input.DeNoise(); // Remove image artifacts
var result = ocrTesseract.Read(input);
Imports IronTesseract
' Enhanced QR code reading with preprocessing
Dim ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
' Configure for better QR detection
Dim input = New OcrImageInput("document-with-qr.pdf")
input.TargetDPI = 300 ' Ensure sufficient resolution
input.Binarize() ' Convert to black and white
input.DeNoise() ' Remove image artifacts
Dim result = ocrTesseract.Read(input)
- Multiple Pages işle alma: Çok sayfalı belgeler için çok sayfalı belgeler:
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;
var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
Console.WriteLine($"Page {page.PageNumber}:");
foreach (var barcode in page.Barcodes)
{
Console.WriteLine($" QR Code: {barcode.Value}");
Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}");
}
}
// Process multi-page documents efficiently
using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf");
pdfInput.TargetDPI = 300;
var results = ocrTesseract.Read(pdfInput);
foreach (var page in results.Pages)
{
Console.WriteLine($"Page {page.PageNumber}:");
foreach (var barcode in page.Barcodes)
{
Console.WriteLine($" QR Code: {barcode.Value}");
Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}");
}
}
Imports System
' Process multi-page documents efficiently
Using pdfInput As New OcrPdfInput("multi-page-qr-document.pdf")
pdfInput.TargetDPI = 300
Dim results = ocrTesseract.Read(pdfInput)
For Each page In results.Pages
Console.WriteLine($"Page {page.PageNumber}:")
For Each barcode In page.Barcodes
Console.WriteLine($" QR Code: {barcode.Value}")
Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}")
Next
Next
End Using
- Async İşleme: Çoklu belgelerle daha iyi performans için async yöntemlerini kullanın:
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
// Asynchronous QR code reading
var result = await ocrTesseract.ReadAsync(imageInput);
' Asynchronous QR code reading
Dim result = Await ocrTesseract.ReadAsync(imageInput)
- Tanıma Sorunlarını Hata Ayıklama: IronOCR'un algıladığını görselleştirmek için sonuç vurgulamayı etkinleştirin:
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png");
result.SaveAsHighlightedImage("qr-detection-debug.png")
Geniş Ölçekli Barkod İşleme için Performans Optimizasyonu
Binlerce barkod ve QR kodu içeren belgeler işlerken, bu optimizasyon stratejilerini uygulayın:
- Çoklu İş Parçacığı: Çoklu belgeleri aynı anda işlemek için çoklu iş parçacıklı işleme yöntemlerini kullanın:
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
var tesseract = new IronTesseract();
tesseract.Configuration.ReadBarCodes = true;
return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
// Process multiple documents in parallel
var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" };
var results = documents.AsParallel().Select(doc =>
{
var tesseract = new IronTesseract();
tesseract.Configuration.ReadBarCodes = true;
return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
' Process multiple documents in parallel
Dim documents = {"doc1.pdf", "doc2.pdf", "doc3.pdf"}
Dim results = documents.AsParallel().Select(Function(doc)
Dim tesseract = New IronTesseract()
tesseract.Configuration.ReadBarCodes = True
Return tesseract.Read(New OcrPdfInput(doc))
End Function).ToList()
- Hafıza Yönetimi: Uzun süren işlemler için abort tokenlarını kullanın:
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;
// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Configuration.CancellationToken = cts.Token;
// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
' Implement cancellation for large batch processing
Using cts As New CancellationTokenSource()
ocrTesseract.Configuration.CancellationToken = cts.Token
' Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5))
End Using
- Sonuç Çıkışı: Metin ve barkod verilerini korumak için sonuçları arama yapılabilir PDF'ler olarak kaydedin:
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
// Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf");
' Export results with embedded barcode values
result.SaveAsSearchablePdf("output-with-barcodes.pdf")
İşletme Uygulamaları ile Entegrasyon
IronOCR'un barkod yetenekleri mevcut .NET uygulamaları ile sorunsuz şekilde entegre olur. Ortak entegrasyon senaryoları şunları içerir:
- Envanter Yönetimi: Gönderi taşeronlarından ürün kodlarını çıkarır
- Belge Arşivleme: Taralı belgeleri yerleşik barkod tanımlayıcılarla indeksler
- Fatura İşleme: Barkod SKU'larını mali belgelerdeki satır kalemleri ile eşleştirin
- Sağlık Kayıtları: Hasta bileklik barkodlarını medikal formlarla birlikte işler
Yüksek hacimde barkod ve QR kodu işleyen uygulamalar için, gerçek dünya metriklerine dayanarak performansı optimize etmek ve işleme durumunu izlemek için ilerleme takibi uygulamayı düşünün.
Sıkça Sorulan Sorular
C# uygulamamda barkod okumayı nasıl etkinleştirebilirim?
IronOCR ile barkod okumayı TesseractConfiguration'da ReadBarCodes = true ayarlayarak etkinleştirin. Bu tek ayar, PDF'lerden ve görüntülerden barkod değerlerinin otomatik çıkarımını aktif hale getirir ve 20'den fazla barkod formatını desteklerken düzenli metin tanımayı da sağlar.
Aynı belgede hem metin hem de barkod okuyabilir miyim?
Evet, IronOCR ikili çıkarım yapar - standart OCR aracılığıyla insan tarafından okunabilir metni alırken aynı anda makine tarafından okunabilir barkodları çözer. OcrResult sınıfı, bu çıktıları ayrıştırarak metini Text özelliği aracılığıyla ve barkod verilerini Barcodes koleksiyonu aracılığıyla erişilebilir hale getirir.
Hangi barkod formatları algılayabilir?
IronOCR, 1D barkodlar (Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Codabar, ITF, MSI, Plessey) ve 2D barkodlar (QR Kod, Data Matrisi ve daha fazlası) dahil olmak üzere 20'den fazla barkod formatını destekler.
PDF belgelerinden barkodlarını nasıl çıkartabilirim?
Bir IronTesseract nesnesi oluşturun, ReadBarCodes'i true olarak ayarlayın, OcrPdfInput yapıcı kullanarak PDF'nizi içeri aktarın, ardından Read metodunu kullanın. IronOCR OCR yapacak ve tüm algılanan barkod değerlerini çıkaracak ve bunlara result.Barcodes koleksiyonu aracılığıyla erişebilirsiniz.
Metin OCR ve barkod okumak için ayrı kütüphanelere ihtiyaçım var mı?
Hayır, IronOCR'un birleştirilmiş yaklaşımı, birden fazla işlem aşamasına veya ayrı kütüphanelere olan ihtiyaçı ortadan kaldırır. Standard OCR metin çıkarımını gerçekleştirirken aynı anda barkod sembolojilerini de çözümleyerek tek seferde işlemi tamamlar.

