C# ile OCR kullanarak Barkod ve QR Kodlarını Nasıl Okursunuz

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, yapılandırmada ReadBarCodes = true ayarını belirleyerek C#'da BARCODE'ları ve QR kodlarını okur. Bu tek ayar, barkod değerlerinin PDF'lerden ve görüntülerden otomatik olarak çıkarılmasını sağlar ve QR kodları, Code 128 ve Data Matrix dahil olmak üzere 20'den fazla barkod formatını destekler.

Hızlı Başlangıç: Bir PDF'den Hemen Barkod Okuyun

Tek bir ayarla barkod tespitini etkinleştirin ve IronOCR ile PDF'leri tarayın. Aşağıdaki kod, barkod okumasını açmayı, bir PDF'yi işlemenin ve kodlanmış değerleri almanın nasıl yapılacağını gösterir.

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve ç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 için dağıtım yapın

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

    arrow pointer


PDF Belgelerinden Barkodları Nasıl Okurum?

Okuma işlemini gerçekleştirmek için bir IronTesseract nesnesi oluşturun. BarCode algılamayı etkinleştirmek için ReadBarCodes özelliğini true olarak ayarlayın. OcrPdfInput oluşturucusunu kullanarak PDF belgesini içe aktarın. İçe aktarılan PDF üzerinde OCR işlemi gerçekleştirmek için `` yöntemini kullanın.

Bu PDF belgesini kullanarak bir örnek burada:

: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 çıkışı, iş profilleri içeren PDF'den alınan metin ve üç barkodu (A,B,C) gösteriyor

Birden çok barkod değeri barkodların altında görünür ve çıkarılan metne dahil edilir.

IronOCR Hem Metin Hem de Barkod Değerlerini Neden Çıkarır?

IronOCR'nin çift ekstraksiyonu, kapsamlı belge analizi sağlar. Hem metin hem de barkod içeren belgeleri işlerken, kütüphane standart OCR metin çıkarımı gerçekleştirirken eşzamanlı olarak barkod semiyolojilerini çözer. Bu birleşik yaklaşım, birden fazla işlem geçişi veya ayrı kütüphaneler gereksinimini ortadan kaldırır.

Metin çıkarımı insan okunabilir unsurları yakalarken, barkod tespiti makine okunabilir verileri tanımlar ve çözer. Bu, fatura, gönderi etiketleri veya barkod değerlerinin yazılı metinle ilişkilendirildiği envanter raporları gibi belgeler için avantaj sağlar. OcrResult sınıfı bu çıktıları ayırır; metne Text özelliği aracılığıyla, BARCODE verilerine ise Barcodes koleksiyonu aracılığıyla erişilir.

Hangi Barkod Formatları Destekleniyor?

IronOCR, 20'den fazla barkod formatını destekler:

1D Barkodlar:

  • Kod 128, Kod 39, Kod 93
  • EAN-13, EAN-8
  • UPC-A, UPC-E
  • Codabar
  • ITF (Interleaved 2 of 5)
  • MSI
  • Plessey

2D Barkodlar:

  • QR Kod
  • Veri Matrisi
  • PDF417
  • Aztek Kodu
  • MaxiCode

IronOCR'nin barkod yetenekleri, MICR çekleri okuma veya kimlik belgelerini işleme gibi özel uygulamalar için metin çıkarma özelliklerini tamamlar.

Barkod Okuma İçin OCR Kullanımını Ne Zaman Tercih Etmeliyim?

IronOCR'nin entegre barkod okumasını seçin:

  1. Karışık İçerik İşleme: Belgeler hem metin hem de barkod içerir (gönderi etiketleri, faturalar veya taralı belgeler)
  2. Tek Kütüphane Tercihi: Bağımlılıkları en aza indirmek ve tek bir çözüm kullanmak istersiniz
  3. PDF İşleme: IronOCR'yi zaten PDF OCR metin çıkarımı için kullanıyorsunuz
  4. Karmaşık Belge Düzenleri: Belgelerde metin bölgeleri veya tablolar içinde gömülü barkodlar bulunur

Özel barkod kütüphanelerini kullanın:

  • Yüksek hacimli yalnızca barkod içeren görüntüler işlenirken
  • Gerçek zamanlı barkod taraması gerekiyorsa (< 50ms yanıt süresi)
  • Özel algoritmalar gerektiren hasarlı veya düşük kaliteli barkodlarla çalışırken
  • Kamera optimizasyonu ile mobil barkod taraması uygularken

Belgelerden QR Kodları Nasıl Okurum?

BarCode okuma gibi, ReadBarCodes özelliğini true olarak ayarlayın. Dosya yolu dışında başka kod değişiklikleri gerekmez. QR kodları içeren bu 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 çıkışı, Visual Studio'da belgeden metin ve başarıyla kodlanan QR kodlarını (A, B ve C) gösteriyor

Aynı Yapılandırma Neden Hem Barkodlar Hem de QR Kodları İçin Çalışıyor?

IronOCR'nin birleşik barkod tespiti motoru tüm makine okunabilir kodları eşit olarak işler. ReadBarCodes yapılandırması, formata özgü ayarlar gerektirmeden hem 1D (doğrusal BARCODE'lar) hem de 2D (QR kodları, Data Matrix) formatlarını tanıyan kapsamlı bir semboloji algılayıcısını etkinleştirir. Bu tasarım, uygulamayı basitleştirir ve yapılandırma karmaşıklığını azaltır.

Tespit algoritması otomatik olarak:

  • Desen tanıma temelinde semiyoloji türünü belirler
  • Uygun çözme algoritmalarını uygular
  • Yönlendirme ve boyut varyasyonlarını kontrol eder
  • Barkod türünden bağımsız olarak sonuçları tutarlı bir formatta döndürür

Bu yaklaşım, Bilgisayar Görüşü modellerinin nasıl çalıştığını yansıtır—birden fazla format üzerinde eğitilerek evrensel tespit yetenekleri sağlar.

OCR ile QR Kodları Okurken Yaygın Sorunlar Nelerdir?

QR kodları işlerken yaygın zorluklar şunlardır:

  1. Çözünürlük Sorunları: PDF'lerdeki QR kodları minimum modül boyutunun altına indirgenebilir. Yeterli çözünürlüğü sağlamak için DPI ayarlarını kullanın (önerilen 300 DPI minimum).

  2. Görüntü Kalitesi: Taralı QR kodları genellikle bulanıklık, gürültü veya bozulma yaşar. Netliği artırmak için görüntü düzeltme filtrelerini uygulayın:
// Apply filters to improve QR code readability
ocrTesseract.Co/nfiguration.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.Co/nfiguration.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ön Problemleri: Açıdaki QR kodları düzgün kodlanmayabilir. Yanlış hizalanmış belgeleri kontrol etmek için sayfa döndürme tespitini etkinleştirin.

  2. Karışık İçerik Engeli: QR kodlarını çakışan metin veya grafik algılamayı engelleyebilir. Gerekli olduğunda 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ıma optimizasyonu yapın:

  1. Görüntüleri Ön İşleme: Optimal iyileştirme ayarlarını belirlemek için Filtre Sihirbazını kullanın:
// Enhanced QR code reading with preprocessing
var ocrTesseract = new IronTesseract();
ocrTesseract.Co/nfiguration.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.Co/nfiguration.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 IronOcr

' Enhanced QR code reading with preprocessing
Dim ocrTesseract As New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True

' Configure for better QR detection
Dim input As 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. Birden Fazla Sayfa İşleme: Birden fazlda QR kodu içeren çok sayfalı belgeler için:
// 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. Asenkron İşlem: Birden fazla belge ile daha iyi performans için asenkron yöntemler 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ı Gider: IronOCR'nin ne tespit ettiğini 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 İçin Performans Optimizasyonu

Barkodlar ve QR kodları ile binlerce belge işlenirken, bu optimizasyon stratejilerini uygulayın:

  1. Multithreading: Çoklu belgeleri aynı anda işlemek için çoklu iş parçacıklı işleme 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.Co/nfiguration.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.Co/nfiguration.ReadBarCodes = true;
    return tesseract.Read(new OcrPdfInput(doc));
}).ToList();
Imports IronTesseract

' 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. Bellek Yönetimi: Uzun süreli işlemler için abort tokenları kullanın:
// Implement cancellation for large batch processing
using var cts = new CancellationTokenSource();
ocrTesseract.Co/nfiguration.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.Co/nfiguration.CancellationToken = cts.Token;

// Cancel if processing takes too long
cts.CancelAfter(TimeSpan.FromMinutes(5));
Imports System.Threading

' 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ç İhracı: Metin ve barkod verilerini korumak için sonuçları aranabilir 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

İş Uygulamalarıyla Entegrasyon

IronOCR'nin barkod yetenekleri mevcut .NET uygulamaları ile sorunsuz bir şekilde entegre olur. Yaygın entegrasyon senaryoları şunlardır:

  • Envanter Yönetimi: Ürün kodlarını gönderi manifestlerinden alır
  • Belge Arşivleme: Taranmış belgeleri gömülü barkod tanımlayıcıları ile dizinleyin
  • Fatura İşleme: finansal belgelerdeki satır öğeleri ile barkod SKU'larını eşleştirin
  • Sağlık Kayıtları: Hastane bileklik barkodlarını tıbbi formlarla işleyin

Yüksek hacimli barkodlar ve QR kodları işleyen üretim uygulamaları için, işleme durumunu izlemek ve gerçek dünya metriklerine dayalı performansı optimize etmek için ilerleme takibi gerçekleştirmeyi düşünün.

Sıkça Sorulan Sorular

C# uygulamamda barkod okuma özelliğini nasıl etkinleştiririm?

IronOCR ile, TesseractConfiguration içinde ReadBarCodes = true ayarını yaparak barkod okuma özelliğini etkinleştirin. Bu tek ayar, düzenli metin tanımanın yanı sıra PDF'lerden ve görüntülerden barkod değerlerinin otomatik olarak çıkarılmasını etkinleştirir ve 20'den fazla barkod formatını destekler.

Aynı belgede hem metin hem de barkod okuyabilir miyim?

Evet, IronOCR çift yönlü çıkarım yapar - standart OCR ile insan tarafından okunabilir metni alırken aynı zamanda makine tarafından okunabilir barkodları da çözümlemektedir. OcrResult sınıfı, bu çıktıları Text özelliği aracılığıyla erişilebilen metin ve Barcodes koleksiyonu yoluyla barkod verileri ile ayırmaktadır.

Hangi barkod formatları tespit edilebilir?

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 Kodu, Data Matrix ve daha fazlası) dahil olmak üzere 20'den fazla barkod formatını destekler.

PDF belgelerinden barkodları nasıl çıkarırım?

Bir IronTesseract nesnesi oluşturun, ReadBarCodes özelliğini true olarak ayarlayın, OcrPdfInput yapıcısını kullanarak PDF dosyanızı içe aktarın, ardından Read yöntemini kullanın. IronOCR, OCR işlemini gerçekleştirecek ve tespit edilen tüm barkod değerlerini çıkartacaktır, bu değerlere result.Barcodes koleksiyonu üzerinden erişebilirsiniz.

Metin OCR ve barkod okuma için ayrı kütüphanelere ihtiyacım var mı?

Hayır, IronOCR'nin birleşik yaklaşımı, birden fazla işlemden geçiş veya ayrı kütüphaneler gereksinimini ortadan kaldırır. Standart OCR metin çıkarımı gerçekleştirirken aynı anda bir işlemde barkod sembolojilerini de çözer.

IronOCR birden fazla dili destekliyor mu?

IronOCR, birden çok dili destekler ve farklı dillerde metin tanımaya ihtiyaç duyan global uygulamalar için çok yönlü bir araçtır.

IronOCR mevcut uygulamalara entegre edilebilir mi?

IronOCR, C# kullanarak mevcut uygulamalara kolayca entegre edecek şekilde tasarlanmıştır, bu sayede geliştiriciler, yazılımlarına minimal çabayla OCR işlevselliği ekleyebilir.

IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?

IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.

IronOCR veri doğruluğunu nasıl artırabilir?

IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.

IronOCR için ücretsiz bir deneme mevcut mu?

Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.