C# dilinde OCR kullanarak barkod ve QR kodlarını nasıl okuyacağımızı öğrenin

IronOCR ile C#'ta Barkodlar ve QR Kodlar Nasıl Okunur

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. 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);
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile

    arrow pointer


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
$vbLabelText   $csharpLabel
IronOCR hata ayıklama çıktısı, iş profilleri bulunan PDF'den metin ve üç barkod (A,B,C) gösteriyor

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:

  1. Karışık İçerik İşleme: Belgeler hem metin hem de barkod içeriyorsa (nakliye etiketleri, faturalar veya tarama belgeleri)
  2. Tek Kütüphane Tercihi: Bağımlılıkları minimize etmek ve tek bir çözüm kullanmak istiyorsanız
  3. PDF İşleme: Zaten IronOCR'u PDF OCR metin çıkarımı için kullanıyorsanız
  4. 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
$vbLabelText   $csharpLabel
IronOCR çıktısı, Visual Studio'da belgelerden çıkarılan metni ve başarıyla kod çözülen QR kodlarını A, B ve C olarak gösteriyor

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:

  1. Çö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).

  2. 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)
$vbLabelText   $csharpLabel
  1. 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.

  2. 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:

  1. 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)
$vbLabelText   $csharpLabel
  1. 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
$vbLabelText   $csharpLabel
  1. 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)
$vbLabelText   $csharpLabel
  1. 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")
$vbLabelText   $csharpLabel

Geniş Ölçekli Barkod İşleme için Performans Optimizasyonu

Binlerce barkod ve QR kodu içeren belgeler işlerken, bu optimizasyon stratejilerini uygulayın:

  1. Ç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()
$vbLabelText   $csharpLabel
  1. 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
$vbLabelText   $csharpLabel
  1. 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")
$vbLabelText   $csharpLabel

İş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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.