Altbilgi içeriğine atla
DIğER BILEşENLERLE KARşıLAşTıRıN

iOS OCR Kütüphanesi (Ücretsiz ve Ücretli Araçlar Karsilastirmasi)

PaddleSharp (Sdcb.PaddleOCR), gerçekten çalıştırdığınız OCR motorundan üç soyutlama katmanı uzakta durur: Baidu sinir ağı modellerini eğitir, RapidOCR hafif bir tahmin için bunları yeniden paketler ve PaddleSharp bunu .NET tüketimi için tekrar sarar. Her katman bir bakım bağımlılığı ekler ve zincirin sınırları, CJK dışındaki bir dile, giriş olarak PDF'ye veya CUDA olmadan bir üretim dağıtımına ihtiyacınız olduğunda kendini gösterir. Bu karşılaştırma, .NET ekiplerinin ön planda nadiren öngördüğü bir mimarinin sunduğu ve maliyetini çıkardığı yerleri incelemektedir.

PaddleSharp OCR'i Anlamak

PaddleSharp, Baidu'nun PaddleOCR derin öğrenme çerçevesinin bir .NET sarmalayıcısıdır, NuGet üzerinde Sdcb.PaddleOCR olarak yayımlanmıştır. Geleneksel OCR algoritmalarını kullanmak yerine, PaddleOCR üç aşamalı bir sinir ağı hattı uygular: bir tespit modeli görüntüde metin bölgelerini bulur, bir sınıflandırıcı modeli metin yönünü belirler ve bir tanıma modeli her bölgeyi metne dönüştürür. Her aşama indirdiğiniz ve bağımsız olarak yapılandırdığınız ayrı bir model dosyasıdır.

Python gerektirmeden .NET'e PaddlePaddle çıkarımı getirmek için sarıcı inşa edildi. Bu hedef teknik olarak başarılmıştır ancak maliyet, platforma özgü çalışma zamanı paketleri gerektiren OpenCvSharp görüntü işleme kütüphanesini içeren bir bağımlılık yığını ve model dosyalarının kendisidir. Windows'ta, bir karakter tanınmadan önce en az dört NuGet paketinin kurulumu gerekir.

PaddleSharp'ın ana mimari özellikleri:

  • Sarmalayıcı derinliği: Üç katman — PaddlePaddle (Baidu) → PaddleOCR modelleri → Sdcb.PaddleSharp .NET bağlamaları
  • Model yönetimi: Algılama, sınıflandırma ve tanıma modelleri ayrı indirmelerdir (Çince V3 seti için sırasıyla ~3MB, ~2MB ve ~10MB); Yolları ve sürümleri elle yönetirsiniz
  • OpenCV bağımlılığı: Görüntü yükleme için OpenCvSharp4 gereklidir; platform değiştirmek, OpenCvSharp4.runtime.* paketini değiştirmeyi gerektirir
  • Dil odaklanması: Başlıca güç Çince ve İngilizce'dir; diğer dil desteği mevcut ve korunan PaddleOCR model paketleriyle sınırlıdır
  • GPU hızlandırması: Ev sahibi üzerinde uyumlu bir CUDA araç seti ve cuDNN kurulumu gerektiren Sdcb.PaddleInference.runtime.win64.cuda paketi ile yerel CUDA desteği
  • CPU performans cezası: GPU olmadan, işlem CPU optimizasyonlu alternatife göre daha yavaştır — derin öğrenme olmayan motorlar için optimize edilmiş100–400mskarşısında her resim için 500–1500ms
  • Topluluk ayak izi: Küçük bir İngilizce dil topluluğu; belgelerin çoğu, Stack Overflow yanıtları ve GitHub sorunları Çince'dir

Üç Aşamalı Çıkarım Kurulumu

PaddleSharp'ı basit bir metin çıkarma görevi için ayarlamak, tüm üç model aşamasını bir araya getirmeyi gerektirir:

// Simplified — see Sdcb.PaddleOCR documentation for full API
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Models;
using OpenCvSharp;

public class PaddleOcrService
{
    private readonly PaddleOcrAll _ocr;

    public PaddleOcrService()
    {
        // Three separate models, each downloaded independently
        var detModel = LocalFullModels.ChineseV3.DetectionModel;
        var clsModel = LocalFullModels.ChineseV3.ClassifierModel;
        var recModel = LocalFullModels.ChineseV3.RecognitionModel;

        // GPU config: set GpuDeviceId = 0 and install CUDA runtime packages
        _ocr = new PaddleOcrAll(detModel, clsModel, recModel);
    }

    public string ExtractText(string imagePath)
    {
        // OpenCV required for image loading — not System.Drawing
        using var image = Cv2.ImRead(imagePath);
        var result = _ocr.Run(image);

        // Manual sort by position; no automatic reading-order guarantee
        return string.Join("\n", result.Regions
            .OrderBy(r => r.Rect.Center.Y)
            .ThenBy(r => r.Rect.Center.X)
            .Select(r => r.Text));
    }
}
// Simplified — see Sdcb.PaddleOCR documentation for full API
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Models;
using OpenCvSharp;

public class PaddleOcrService
{
    private readonly PaddleOcrAll _ocr;

    public PaddleOcrService()
    {
        // Three separate models, each downloaded independently
        var detModel = LocalFullModels.ChineseV3.DetectionModel;
        var clsModel = LocalFullModels.ChineseV3.ClassifierModel;
        var recModel = LocalFullModels.ChineseV3.RecognitionModel;

        // GPU config: set GpuDeviceId = 0 and install CUDA runtime packages
        _ocr = new PaddleOcrAll(detModel, clsModel, recModel);
    }

    public string ExtractText(string imagePath)
    {
        // OpenCV required for image loading — not System.Drawing
        using var image = Cv2.ImRead(imagePath);
        var result = _ocr.Run(image);

        // Manual sort by position; no automatic reading-order guarantee
        return string.Join("\n", result.Regions
            .OrderBy(r => r.Rect.Center.Y)
            .ThenBy(r => r.Rect.Center.X)
            .Select(r => r.Text));
    }
}
Imports Sdcb.PaddleOCR
Imports Sdcb.PaddleOCR.Models
Imports OpenCvSharp

Public Class PaddleOcrService
    Private ReadOnly _ocr As PaddleOcrAll

    Public Sub New()
        ' Three separate models, each downloaded independently
        Dim detModel = LocalFullModels.ChineseV3.DetectionModel
        Dim clsModel = LocalFullModels.ChineseV3.ClassifierModel
        Dim recModel = LocalFullModels.ChineseV3.RecognitionModel

        ' GPU config: set GpuDeviceId = 0 and install CUDA runtime packages
        _ocr = New PaddleOcrAll(detModel, clsModel, recModel)
    End Sub

    Public Function ExtractText(imagePath As String) As String
        ' OpenCV required for image loading — not System.Drawing
        Using image = Cv2.ImRead(imagePath)
            Dim result = _ocr.Run(image)

            ' Manual sort by position; no automatic reading-order guarantee
            Return String.Join(vbLf, result.Regions _
                .OrderBy(Function(r) r.Rect.Center.Y) _
                .ThenBy(Function(r) r.Rect.Center.X) _
                .Select(Function(r) r.Text))
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Yapıcı tek başına gerçek iş yapar: model ikili dosyalarını diskten yükler ve çıkarım motorunu başlatır. Bu başlatma maliyeti her PaddleOcrAll örneği için bir kez ödenir ve bu, nesneyi oluşturmayı pahalı hale getirir ve hizmet odaklı .NET uygulamalarında dikkatli yaşam döngüsü yönetimi gerektirir.

IronOCR'u Anlamak

IronOCR, optimize edilmiş bir Tesseract 5 motoruna dayanan ve üzerine otomatik ön işleme hattı eklenmiş ticari bir .NET OCR kütüphanesidir. Harici model dosyaları olmadan, yerel ikili yapılandırmalar olmadan, ve herhangi bir ikincil resim işleme kitaplığı bağımlılığı olmadan tek bir NuGet paketi olarak yüklenir. Tasarım amacı, "kurulum" ile "doğru metin çıktısı" arasındaki boşluğu ortadan kaldırmaktır — bu boşluk diğer çoğu .NET OCR seçeneğini tanımlar.

IronOCR'nin ana özellikleri:

  • Tek paket dağıtımı: dotnet add package IronOcr — model indirmeleri yok, tessdata klasörleri yok, OpenCV yok
  • Otomatik ön işleme: Dizgi kaldırma, gürültü giderme, kontrast artırma, ikilileştirme ve çözünürlük normalleştirme resim girişi üzerinde otomatik olarak gerçekleşir; Gerektiğinde mevcut açık ön işleme filtreleri
  • Yerel PDF desteği: Hem taranmış hem de metin katmanlı PDF'ler doğrudan kabul edilir; parola korumalı PDF'ler bir parametre gerektirir
  • 125+ dil: Bireysel NuGet dil paketleri olarak teslim edilir (örneğin, IronOcr.Languages.ChineseSimplified), herhangi bir paket bağımlılığı gibi yönetilir
  • Yapılandırılmış çıktı: Sonuçlar sayfalar, paragraflar, satırlar, kelimeler ve bireysel karakter sınırlayıcı kutularlarını güven seviyeleri ile birlikte açığa çıkarır
  • İş parçacığı güvenliği: Birden çok IronTesseract örneği ortak durum olmadan eşzamanlı çalışır; bir parti iş yükünü paralel hale getirmek Parallel.ForEach çağrısıdır
  • Fiyatlandırma: $999 süresiz (Lite, 1 geliştirici), $1,499 (Plus, 3 geliştirici), $2,999 (Professional, 10 geliştirici), $5,999 (Sınırsız)

Özellik Karşılaştırması

Özellik PaddleSharp OCR IronOCR
Gerekli NuGet paketleri 3–4 minimum 1
Model yönetimi Elle (3 ayrı dosya) None
PDF girişi Hayır (dönüşüm gerekli) Yerel
Dil sayısı ~10–20 125+
GPU hızlandırması Evet (CUDA) CPU için optimize edilmiş
Ön işlem Elle (OpenCV) Otomatik
Fiyatlandırma Ücretsiz (Apache 2.0) $5,999 süresiz

Ayrıntılı Özellik Karşılaştırması

Özellik PaddleSharp OCR IronOCR
Kurulum ve Dağıtım
NuGet paketleri gerekli 3–4 1
Model dosyaları indirmesi Evet (3 dosya, toplam ~15MB) Hayır
OpenCV bağımlılığı Gereklidir None
GPU için CUDA/cuDNN GPU modu için gerekli Uygulanamaz
Docker dağıtımı Karmaşık (yerel çalışma zamanları) Tek katman ekleme
İzole dağıtım Evet (model indirmeden sonra) Evet
Metin Tanıma
Çince/Japonca/Korece doğruluğu Yüksek (ana odak) Yüksek
Latin alfabeli doğruluk Orta Yüksek
El yazısı Sınırlı Desteklenen
Düşük kaliteli tarama işlemesi Elle ön işleme gerekir Otomatik
Otomatik eğrilik giderimi Hayır Evet
Otomatik gürültü giderme Hayır Evet
Giriş Kaynakları
Görüntü dosyaları Evet (OpenCV aracılığıyla) Evet
PDF dosyaları (yerel) Hayır Evet
Şifre korumalı PDF Hayır Evet
Akışlar ve bayt dizileri OpenCV aracılığıyla Evet
Çok sayfalı TIFF OpenCV aracılığıyla Evet
Çıktı
Düz metin Evet Evet
Aranabilir PDF Hayır Evet
hOCR Hayır Evet
Kelime düzeyi sınırlayıcı kutular Evet Evet
Güven skoru Evet Evet
Yapılandırılmış sayfa/satır/kelime hiyerarşisi Kısmi (yalnızca bölgeler) Tam
Dil Desteği
Dil sayımı ~10–20 125+
Dil yükleme yöntemi Model paket indir NuGet paketi
Karma dil dökümanı Sınırlı Evet
Özel dil eğitimi Evet (PaddlePaddle) Evet
Platform Desteği
Windows Evet Evet
Linux Evet (karmaşık kurulum) Evet
macOS Sınırlı Evet
Docker Evet (yerel çalışma zamanları ile) Evet
AWS Lambda Karmaşık Evet
Performans
CPU tek bir görüntü 500–1500ms 100–400ms
GPU tek bir görüntü 100–300ms Uygulanamaz
Bellek (CPU modu) Daha yüksek Orta
OCR sırasında barkod okuma Hayır Evet
Ticari Hazırlık
Ticari lisans Apache 2.0 Geliştirici başına süresiz
Destek kanalı GitHub sorunları E-posta desteği
İngilizce dokümantasyon Seyrek Geniş dokümanlar, öğreticiler ve nasıl yapılır kılavuzları
Üretim durumu incelemeleri Nadir (.NET özgü) Belgelendi

Özet Derinliği ve Bakım Riski

PaddleSharp, bu kategoride üç ayrı bağımlı projeyi ön koşul olarak çalıştıran tek .NET OCR seçeneğidir. Bu derinlik, üretim ekipleri için temel risktir.

PaddleSharp Yaklaşımı

Bağımlılık zinciri pratikte böyle görünür:

  1. Baidu PaddlePaddle — temel derin öğrenme çerçevesi. Model formatları ve çıkarım API'ları burada tanımlanır.
  2. PaddleOCR — Baidu'nun algılama, sınıflandırma ve tanıma model ağırlıklarını üreten model eğitimi projesi.
  3. Sdcb.PaddleSharp — PaddleInference yerel kütüphanelerini çağıran ve model yükleme API'sini saran .NET bağlam katmanı.

Her katmanın kendi yeni sürüm takvimi, kırılma değişikliği geçmişi ve topluluğu vardır. Baidu, PaddlePaddle çıkarım API'larını güncellediğinde, bağlama katmanı yetişmelidir. PaddleOCR sürümleri arasında bir model formatı değiştiğinde, PaddleSharp'taki model indirme yolları ve yükleme kodu güncellenmelidir. .NET ekibi için, bunlar bir dağıtım başarısız olana kadar görünmezdir.

Başlatma maliyetinin basitleştirilmiş bir gösterimi:

// Simplified — see Sdcb.PaddleOCR documentation for full API
// This is not one line of setup; it represents several coordinated decisions:
// - Which model version to use (ChineseV3, V4, etc.)
// - Whether models are local files or downloaded on first use
// - Which inference backend (CPU, MKL, GPU)
// - Which OpenCvSharp runtime package matches the deployment OS

var detModel = LocalFullModels.ChineseV3.DetectionModel;  // Version-specific
var clsModel = LocalFullModels.ChineseV3.ClassifierModel; // Version-specific
var recModel = LocalFullModels.ChineseV3.RecognitionModel; // Version-specific

var ocr = new PaddleOcrAll(detModel, clsModel, recModel);
// If a newer model format is released, these names and classes may change
// Simplified — see Sdcb.PaddleOCR documentation for full API
// This is not one line of setup; it represents several coordinated decisions:
// - Which model version to use (ChineseV3, V4, etc.)
// - Whether models are local files or downloaded on first use
// - Which inference backend (CPU, MKL, GPU)
// - Which OpenCvSharp runtime package matches the deployment OS

var detModel = LocalFullModels.ChineseV3.DetectionModel;  // Version-specific
var clsModel = LocalFullModels.ChineseV3.ClassifierModel; // Version-specific
var recModel = LocalFullModels.ChineseV3.RecognitionModel; // Version-specific

var ocr = new PaddleOcrAll(detModel, clsModel, recModel);
// If a newer model format is released, these names and classes may change
' Simplified — see Sdcb.PaddleOCR documentation for full API
' This is not one line of setup; it represents several coordinated decisions:
' - Which model version to use (ChineseV3, V4, etc.)
' - Whether models are local files or downloaded on first use
' - Which inference backend (CPU, MKL, GPU)
' - Which OpenCvSharp runtime package matches the deployment OS

Dim detModel = LocalFullModels.ChineseV3.DetectionModel  ' Version-specific
Dim clsModel = LocalFullModels.ChineseV3.ClassifierModel ' Version-specific
Dim recModel = LocalFullModels.ChineseV3.RecognitionModel ' Version-specific

Dim ocr As New PaddleOcrAll(detModel, clsModel, recModel)
' If a newer model format is released, these names and classes may change
$vbLabelText   $csharpLabel

Buradaki sürüm duyarlılığı gerçektir. Sdcb.PaddleOCR 2.x'e tutunan ve daha yeni modellere erişmek için yükseltme yapmak isteyen ekipler, bağlayıcı katmanında API değişiklikleriyle karşılaşır. Üst model dosyaları, büyük PaddleOCR sürümleri arasında geriye dönük uyumlu değildir.

IronOCR Yaklaşımı

IronOCR, motoru ve tüm bağımlılıkları NuGet paketinin içinde dağılmış halde gönderir. Seçilecek bir model sürümü, yapılandırılacak bir çıkarım arka planı yoktur ve senkronize tutulması gereken ikincil bir kütüphane yoktur:

// One package: dotnet add package IronOcr
//Hayırmodel downloads.HayırOpenCV.Hayırruntime packages.
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var result = new IronTesseract().Read("document.jpg");
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
// One package: dotnet add package IronOcr
//Hayırmodel downloads.HayırOpenCV.Hayırruntime packages.
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

var result = new IronTesseract().Read("document.jpg");
Console.WriteLine(result.Text);
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr

' One package: dotnet add package IronOcr
' Hayırmodel downloads.HayırOpenCV.Hayırruntime packages.
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim result = New IronTesseract().Read("document.jpg")
Console.WriteLine(result.Text)
Console.WriteLine($"Confidence: {result.Confidence}%")
$vbLabelText   $csharpLabel

IronOCR'u yükseltmek, tek bir NuGet sürüm artırmasıdır. API yüzey değişiklikleri yayın notlarında belgelenmiştir ve büyük sürümler içinde geriye dönük uyumluluk korunur. CI/CD hatlarında çalışan ekipler için, dağıtım yüzey alanındaki fark önemli ölçüde daha azdır: bir paket karşısında dört paket artı platforma özgü çalışma zamanı paketleri artı doğru yollarla disk üzerinde mevcut olması gereken model dosyalar.

IronTesseract kurulum kılavuzuna ve resim girişi nasıl yapılır listesine kabul edilen tüm giriş kaynakları için bakın.

Dil Kapsamı

PaddleOCR öncelikle Çince için eğitildi ve İngilizce ikinci dil olarak düşünüldü. .NET topluluğu PaddleSharp etrafında bunu yansıtır: Çince yazılar için model paketleri (Basitleştirilmiş, Geleneksel), İngilizce ve birkaç başka dil için mevcuttur, ancak yaklaşık 10-20 dilin ötesinde kapsam zayıftır ve CJK dışı modellerin bakımı, üst proje ilgi sürdürdüğü sürece devam eder.

PaddleSharp Yaklaşımı

PaddleSharp'ta dil değiştirmek, model setini değiştirmek demektir. Tanıma modeli dil spesifiktir ve basit bir API bayrağı yoktur — farklı bir model nesneleri seti başlatırsınız:

// Simplified — see Sdcb.PaddleOCR documentation for full API
// English model set (if available for your version)
// var recModel = LocalFullModels.EnglishV3.RecognitionModel;

// Chinese model set (primary supported use case)
var detModel = LocalFullModels.ChineseV3.DetectionModel;
var recModel = LocalFullModels.ChineseV3.RecognitionModel;
var clsModel = LocalFullModels.ChineseV3.ClassifierModel;

var ocr = new PaddleOcrAll(detModel, clsModel, recModel);
// Non-CJK languages require checking upstream PaddleOCR model availability
// Mixed CJK + Latin in the same document may require model selection decisions
// Simplified — see Sdcb.PaddleOCR documentation for full API
// English model set (if available for your version)
// var recModel = LocalFullModels.EnglishV3.RecognitionModel;

// Chinese model set (primary supported use case)
var detModel = LocalFullModels.ChineseV3.DetectionModel;
var recModel = LocalFullModels.ChineseV3.RecognitionModel;
var clsModel = LocalFullModels.ChineseV3.ClassifierModel;

var ocr = new PaddleOcrAll(detModel, clsModel, recModel);
// Non-CJK languages require checking upstream PaddleOCR model availability
// Mixed CJK + Latin in the same document may require model selection decisions
' Simplified — see Sdcb.PaddleOCR documentation for full API
' English model set (if available for your version)
' Dim recModel = LocalFullModels.EnglishV3.RecognitionModel

' Chinese model set (primary supported use case)
Dim detModel = LocalFullModels.ChineseV3.DetectionModel
Dim recModel = LocalFullModels.ChineseV3.RecognitionModel
Dim clsModel = LocalFullModels.ChineseV3.ClassifierModel

Dim ocr = New PaddleOcrAll(detModel, clsModel, recModel)
' Non-CJK languages require checking upstream PaddleOCR model availability
' Mixed CJK + Latin in the same document may require model selection decisions
$vbLabelText   $csharpLabel

Fransız faturalarını, Alman sözleşmelerini veya Arap formlarını işleyen bir ekip için, soru, bir model paketi bugünü var mı değil — önümüzdeki yıl bakımının devam edip etmeyeceği ve onu yapılandırıcak İngilizce belgelerin olup olmadığıdır.

IronOCR Yaklaşımı

IronOCR 125+ dili NuGet paketleri olarak sunar. Her bir dil paketi, herhangi bir başka bağımlılık gibi yüklenir ve manuel dosya dağıtımı olmadan standart CI/CD hatları ile entegrasyon sağlar:

// dotnet add package IronOcr.Languages.ChineseSimplified
// dotnet add package IronOcr.Languages.French
// dotnet add package IronOcr.Languages.Arabic

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
ocr.AddSecondaryLanguage(OcrLanguage.English); // Mixed-language document

var result = ocr.Read("mixed-document.jpg");
// dotnet add package IronOcr.Languages.ChineseSimplified
// dotnet add package IronOcr.Languages.French
// dotnet add package IronOcr.Languages.Arabic

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
ocr.AddSecondaryLanguage(OcrLanguage.English); // Mixed-language document

var result = ocr.Read("mixed-document.jpg");
' dotnet add package IronOcr.Languages.ChineseSimplified
' dotnet add package IronOcr.Languages.French
' dotnet add package IronOcr.Languages.Arabic

Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.ChineseSimplified
ocr.AddSecondaryLanguage(OcrLanguage.English) ' Mixed-language document

Dim result = ocr.Read("mixed-document.jpg")
$vbLabelText   $csharpLabel

çoklu dil kılavuzu, betikleri karıştıran belgeler için eşzamanlı çoklu dil tanımasını kapsar — bu, model seviyesinde hiçbir karar gerektirmeyen sadece bir AddSecondaryLanguage çağrısı gerektiren bir yetenektir.

Belgeleri birçok dili kapsayan ekipler için, ya da başlangıç kapsamının ötesine geçmesi beklenen dil gereksinimleri olanlar için, NuGet paketleri tarafından desteklenen 125 dilli bir katalog, bakımı değişken bir 10–20 dil setinden daha dayanıklı bir seçimdir.

Ön İşleme ve PDF Desteği

PaddleOCR'nin nöral ağ hattı bazı görüntü kalitesi değişkenliklerini, CJK metni için geleneksel OCR'den daha bine ayarlar, fakat döndürme kaldırma, gürültü giderme veya çözünürlük normalizasyonu gibi görevler için yerleşik bir görüntü ön işleme API'si sağlamaz. Herhangi bir ön işlemeyi OpenCV ile yazmalısınız — PaddleSharp zaten bunu gerektiriyor ancak görüntü işleme uzmanları olmayan ekipler için önemli bir kod yüzeyi ekliyor.

PDF desteği daha zor bir boşluktur. PaddleSharp'un yerel PDF okuyucusu yoktur. PDF'leri alan bir belge hattı; her sayfanın bir resme dönüştürülmesi gerekir ki bu, ayrı bir PDF kütüphanesi gerektiği anlamına gelir, bağımlılıklar ekler ve ara dosya yönetimini tanıtır.

PaddleSharp Yaklaşımı

// Simplified — see Sdcb.PaddleOCR documentation for full API
// PaddleSharp has no PDF support — pages must be pre-converted to images
// Preprocessing (deskew, denoise) requires OpenCV operations:

using OpenCvSharp;

// Load image via OpenCV
using var image = Cv2.ImRead("scan.jpg");

// Manual grayscale conversion
using var gray = new Mat();
Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);

// Manual threshold (binarization)
using var binary = new Mat();
Cv2.Threshold(gray, binary, 128, 255, ThresholdTypes.Binary);

// Then pass to OCR engine
var result = _ocr.Run(binary);
// Each preprocessing step requires OpenCV knowledge
// PDF pages require a separate PDF-to-image conversion step first
// Simplified — see Sdcb.PaddleOCR documentation for full API
// PaddleSharp has no PDF support — pages must be pre-converted to images
// Preprocessing (deskew, denoise) requires OpenCV operations:

using OpenCvSharp;

// Load image via OpenCV
using var image = Cv2.ImRead("scan.jpg");

// Manual grayscale conversion
using var gray = new Mat();
Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);

// Manual threshold (binarization)
using var binary = new Mat();
Cv2.Threshold(gray, binary, 128, 255, ThresholdTypes.Binary);

// Then pass to OCR engine
var result = _ocr.Run(binary);
// Each preprocessing step requires OpenCV knowledge
// PDF pages require a separate PDF-to-image conversion step first
Imports OpenCvSharp

' Load image via OpenCV
Using image As Mat = Cv2.ImRead("scan.jpg")

    ' Manual grayscale conversion
    Using gray As New Mat()
        Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY)

        ' Manual threshold (binarization)
        Using binary As New Mat()
            Cv2.Threshold(gray, binary, 128, 255, ThresholdTypes.Binary)

            ' Then pass to OCR engine
            Dim result = _ocr.Run(binary)
            ' Each preprocessing step requires OpenCV knowledge
            ' PDF pages require a separate PDF-to-image conversion step first
        End Using
    End Using
End Using
$vbLabelText   $csharpLabel

Bu ön işlemeyi yazmak, OpenCV deneyimi olan ekipler için mümkündür. Deneyimi olmayan ekipler için, öğrenme eğrisi önemsiz değildir — OpenCV'nin bir geniş API yüzeyi vardır ve belgelerin çoğu öncelikle C++ dili üzerinde temellidir.

IronOCR Yaklaşımı

IronOCR'un ön işleme hattı, harici kütüphane gerektirmez. Resimleri kabul eden aynı OcrInput nesnesi PDF'leri de kabul eder ve ön işleme filtreleri tek metod çağrılarıdır:

using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Built-in preprocessing — no OpenCV, no manual image math
input.Deskew();
input.DeNoise();
input.Contrast();
input.Binarize();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);
using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Built-in preprocessing — no OpenCV, no manual image math
input.Deskew();
input.DeNoise();
input.Contrast();
input.Binarize();
input.EnhanceResolution(300);

var result = new IronTesseract().Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

Using input As New OcrInput()
    input.LoadImage("low-quality-scan.jpg")

    ' Built-in preprocessing — no OpenCV, no manual image math
    input.Deskew()
    input.DeNoise()
    input.Contrast()
    input.Binarize()
    input.EnhanceResolution(300)

    Dim result = New IronTesseract().Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

PDF girişi için, doğal destek, bir dönüşüm adımının olmaması anlamına gelir:

// PDF input — no external library, no page conversion
var result = new IronTesseract().Read("scanned-document.pdf");

// Password-protected PDFs
using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);

// Output as searchable PDF
result.SaveAsSearchablePdf("searchable-output.pdf");
// PDF input — no external library, no page conversion
var result = new IronTesseract().Read("scanned-document.pdf");

// Password-protected PDFs
using var input = new OcrInput();
input.LoadPdf("encrypted.pdf", Password: "secret");
var result = new IronTesseract().Read(input);

// Output as searchable PDF
result.SaveAsSearchablePdf("searchable-output.pdf");
Imports IronTesseract

' PDF input — no external library, no page conversion
Dim result = New IronTesseract().Read("scanned-document.pdf")

' Password-protected PDFs
Using input As New OcrInput()
    input.LoadPdf("encrypted.pdf", Password:="secret")
    result = New IronTesseract().Read(input)
End Using

' Output as searchable PDF
result.SaveAsSearchablePdf("searchable-output.pdf")
$vbLabelText   $csharpLabel

görüntü kalitesi düzeltme kılavuzu, tüm mevcut filtrelerle örnekler içerir. PDF girişi nasıl yapılır, sayfa seçimi, akış girişi ve parola yönetimi için kılavuzlar. Taranmış belgelerden aranabilir PDF'ler üreten ekipler için, aranabilir PDF çıktısı bir yerleşik çıktı formatıdır — ayrı bir işleme adımı değildir.

API Eşleme Başvurusu

PaddleSharp OCR Konsepti IronOCR Karşılığı
Sdcb.PaddleOCR (namespace) IronOcr (namespace)
PaddleOcrAll IronTesseract
LocalFullModels.ChineseV3.DetectionModel Eşdeğer yok — model seçimi gerekli değil
LocalFullModels.ChineseV3.RecognitionModel Eşdeğer yok — model seçimi gerekli değil
LocalFullModels.ChineseV3.ClassifierModel Eşdeğer yok — model seçimi gerekli değil
Cv2.ImRead(path) (OpenCV görüntü yüklemesi) input.LoadImage(path)
_ocr.Run(matImage) ocr.Read(input) veya ocr.Read("file.jpg")
result.Regions result.Words, result.Lines, result.Pages
region.Text word.Text, line.Text, page.Text
region.Rect.Center word.X, word.Y
Dil modeli değişimi (yeni model seti) ocr.Language = OcrLanguage.French
PaddleConfig (çıkarım arka ucü yapılandırması) Eşdeğer yok — otomatik yapılandırılmış
OpenCvSharp sınır / gri tonlama işlemleri input.Binarize(), input.ToGrayScale()
PDF desteği yok — görüntüye ön dönüştür input.LoadPdf("file.pdf")
Aranabilir PDF çıktısı yok result.SaveAsSearchablePdf("output.pdf")

Ekipler PaddleSharp OCR'den IronOCR'a Geçişi Düşündüğünde

Boru Hattı CJK Dışı Belgeleri İşliyor

PaddleSharp Çince için inşa edildi. Bu miras model adlandırma geleneğinde (ChineseV3), temel dokümantasyon dili ve dil paketi mevcudiyetinde görünür. Çince belge işlemesi ile başlayan ve ardından Fransız faturalarına veya Alman sözleşmelerine genişleyen bir ekip sert bir duvara çarpar: CJK dışındaki mevcut model paketleri azdır, CJK dışı modellere olan bakım taahhüdü belirsizdir ve onları kurmak için İngilizce belgeler seyrektir. IronOCR'un NuGet üzerinden125+dil katalogu, dil genişlemesinin bir paket yüklemesi anlamına gelir, bir araştirma projesi değil.

Dağıtım Ortamı GPU'ya Sahip Değil

PaddleOCR'nin derin öğrenme hattı GPU çıkarımı için tasarlanmıştır. CPU üzerinde, performans sayıları dürüst: tipik belge çözünürlüklerinde her görüntü için 500–1500 ms. Binlerce belge işleyen bir yığın boru hattı için veya eşzamanlı OCR istekleri sunan bir ASP.NET uygulaması için, CPU modunda PaddleSharp ölçek boyunca birleşen gecikmeler ekler. IronOCR'un optimize edilmiş Tesseract 5 motoru, CPU üzerinde GPU gereksinimi olmadan görüntü başına100–400msçalışır. Standart VM katmanlarında, GPU geçişi olmayan konteynerlerde veya CI çalışanlarında dağıtımları için, bu fark, bir işi tamamlama ile tamamlamama arasındaki farktır.

PDF Belgeleri Giriş Boru Hattında

PDF, iş belgeleri için kayıt formatıdır. PaddleSharp'un PDF okuyucusu yoktur. PaddleSharp'ı temel alarak inşa ettiklerinde, bu sınırlamayı keşfeden ekipler bir seçimle karşı karşıya: bir PDF kütüphanesi eklemek (şimdi kendi lisanslama ve sürüm düşünceleri olan başka bir bağımliliği yönetmek), PDF'leri ön işleme adımı olarak görüntülere dönüştürmek (depolama ve I/O yükünü ekleyerek), veya yerel PDF desteği olan bir kütüphaneye geçmek. IronOCR'un yerel PDF girişi, şifre korumalı PDF'ler ve sayfa aralığı seçimi de dahil olmak üzere, PDF ile başlayan belge iş akışları için doğrudan bir seçimdir.

Bağımlılık Zinciri Güvenlik veya Uyum İncelemesi Geçemiyor

Kurumsal dağıtımlar — sağlık, finans, hükümet — genellikle bir yazılım malzeme faturası ve bağımlılık denetimi gerektirir. PaddleSharp'ın zinciri, Baidu kökenli model dosyalarını ve Baidu derin öğrenme çıkarım çalışma zamanını içerir. Belirli kökenlerden gelen yazılım bileşenlerini kısıtlayan politikaları olan kuruluşlar veya satıcı güvenlik açıklamalarına açık bir yol talep eden ekipler için, Baidu kökenli ikili dosyalara bağımlılık ek inceleme adımlarını gerektirir. IronOCR, standart ticari destek ilişkisi ve belgelenmiş lisans koşullarıyla bir Batılı yazılım satıcısından tek bir ticari üründür.

Ekip Operasyonel Aşırı Yükü Karşılayamaz

18 aydan fazla bir süre PaddleSharp dağıtımını sürdürmek, model sürümü uyumluluğunu takip etmek, OpenCV çalışma zamanı paket sürümlerini platforma özgü dağıtımlarla koordine etmek, eğer GPU kullanılıyorsa CUDA araç seti sürümlerini hizalamak ve çoğunlukla Çince olan üst GitHub sorunlarını izlemek anlamına gelir. Bu, önemsiz olmayan bir operasyonel yatırımdır. Ana yeterliliği, inşa ettikleri uygulama olan ekipler için — derin öğrenme altyapısı değil — PaddleSharp'ı yönetmenin maliyeti ile orantılı değer üretmeyen bir aşırı yüktür.

Genel Geçiş Dikkat Edilmesi Gereken Hususlar

OpenCV Bağımlılığını Kaldırmak

PaddleSharp, görüntü yükleme için OpenCvSharp4 ve platforma özgü bir OpenCvSharp4.runtime.* paketi gerektirir. IronOCR, System.Drawing.Bitmap, dosya yolları, akışlar ve bayt dizilerini doğrudan OcrInput aracılığıyla kabul eder. Taşınabilirlik, Cv2.ImRead() çağrılarını input.LoadImage() ile değiştirmek ve OpenCvSharp paket referanslarını tamamen kaldırmak anlamına gelir:

// PaddleSharp pattern — requires OpenCV
using var image = Cv2.ImRead(imagePath);
var result = _ocr.Run(image);

//IronOCR equivalent — no OpenCV
var result = new IronTesseract().Read(imagePath);
// PaddleSharp pattern — requires OpenCV
using var image = Cv2.ImRead(imagePath);
var result = _ocr.Run(image);

//IronOCR equivalent — no OpenCV
var result = new IronTesseract().Read(imagePath);
Imports OpenCvSharp
Imports IronOcr

' PaddleSharp pattern — requires OpenCV
Using image = Cv2.ImRead(imagePath)
    Dim result = _ocr.Run(image)
End Using

' IronOCR equivalent — no OpenCV
Dim result = New IronTesseract().Read(imagePath)
$vbLabelText   $csharpLabel

görüntü girdi kılavuzu, akışlar, URL'ler ve bellekteki bit resimleri dahil tüm kabul edilen giriş türlerini kapsar.

Bölge Seviyesinde Sonuç Haritalama

PaddleSharp, result.Regions — tespit edilen metin bölgelerinin yan dikdörtgenleri ve metin dizgileriyle düz bir listesini döndürür.IronOCR daha zengin bir hiyerarşi döndürür: sayfalar paragraflar içerir, paragraflar satırlar içerir, satırlar kelimeler içerir, hepsi koordinatlarla ve her bir unsur için güven puanları ile. result.Regions kullanıyorsa, düzlük kelime listeleme ve konum verisi için IronOCR eşdeğeri:

var result = new IronTesseract().Read("document.jpg");

// Per-word with position — equivalent to PaddleSharp region enumeration
foreach (var word in result.Words)
{
    Console.WriteLine($"'{word.Text}' at ({word.X},{word.Y}) confidence:{word.Confidence}%");
}
var result = new IronTesseract().Read("document.jpg");

// Per-word with position — equivalent to PaddleSharp region enumeration
foreach (var word in result.Words)
{
    Console.WriteLine($"'{word.Text}' at ({word.X},{word.Y}) confidence:{word.Confidence}%");
}
Imports System
Imports IronOcr

Dim result = New IronTesseract().Read("document.jpg")

' Per-word with position — equivalent to PaddleSharp region enumeration
For Each word In result.Words
    Console.WriteLine($"'{word.Text}' at ({word.X},{word.Y}) confidence:{word.Confidence}%")
Next
$vbLabelText   $csharpLabel

sonuçları okuma kılavuzu, tam sonuç yapısını belgeler. güven skorları kılavuzu, her bir unsur için olan güven değerlerini açıklar ve bunları kalite filtrelemesi için nasıl kullanacağını anlatır.

OCR Motoru için Yaşam Döngüsü Yönetimi

PaddleSharp'ın PaddleOcrAll yapımı pahalıdır — oluşturulması sırasında model ikili dosyalarını diskten yükler ve ASP.NET Core'da tek veya kapsamlı bir hizmet olarak ele alınmalıdır. IronOCR'un IronTesseract daha hafif bir başlatma maliyetine sahiptir, ancak aynı ilke geçerlidir: bir web uygulamasında istekler arası örnekleri yeniden kullanmak, her istek için oluşturmaktan daha verimlidir. Her iki durumda da, bir singleton veya istek başına kapsamlı bir hizmet olarak bağımlılık enjeksiyonu doğru modeldir.

Dil Paketi Kurulumu

PaddleSharp dil desteği, oluşturma zamanında farklı model setlerini seçmek anlamına gelir. IronOCR'da, dil desteği projeye eklenen bir NuGet paketi ve tek satırlık bir yapılandırma çağrısıdır:

// dotnet add package IronOcr.Languages.ChineseSimplified

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
var result = ocr.Read("document.jpg");
// dotnet add package IronOcr.Languages.ChineseSimplified

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
var result = ocr.Read("document.jpg");
Imports IronOcr

Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.ChineseSimplified
Dim result = ocr.Read("document.jpg")
$vbLabelText   $csharpLabel

PaddleSharp'tan taşınan CJK ekipleri için, Çince Basitleştirilmiş, Çince Geleneksel, Japonca ve Korece tüm IronOCR dil paketleri olarak mevcuttur. özelleştirilmiş dil kılavuzu, özel eğitimli tessdata'yı uzmanlaşmış kullanım senaryoları için içeri almayı kapsar.

Ek IronOCR Yetenekleri

Yukarıda karşılaştırılan özelliklerin ötesinde, IronOCR, PaddleSharp'ın kapsamı dışında tamamen olan yetenekler sağlar:

  • Bölge tabanlı OCR: Tam sayfayı işlemek yerine belirli bir görüntü bölgesine — başlık satırları, fatura toplamları, belirli form alanları — CropRectangle kullanarak hedefleyin
  • Asenkron OCR: ASP.NET Core istek hatlarına OCR entegrasyonu için entegre asenkron destek — saatleri bloke etmeden
  • Pasaport ve kimlik okuma: Seyahat belgerlerinin ve kimlik kartlarının makine okunabilir bölge verilerini yapısal olarak çıkarma
  • Tablo okuma: Tablolar belge düzenlerinden satır-sütun yapısını yeniden oluşturmak için kelime koordinatlarının alansal gruplandırması
  • Lisanslama: Çalışma zamanı telifleri olmadan ve deneme modunda ücretsiz geliştirme kullanımı altında, geliştirici başına sürekli lisanslar

.NET Uyumluluğu ve Geleceğe Hazırlık

IronOCR, x64 ve x86 mimarileri genelinde Windows,LinuxvemacOSiçin tam destek ile .NET 8 ve .NET 9 hedefler ve Docker dağıtım kılavuzları konteynerli iş yükleri için yayımlar. PaddleSharp modern .NET çalışma zamanlarını destekler ancak OpenCV çalışma zamanı paketleri tarafından karmaşıklaştırılmış çapraz platform hikayesi ile; bunlar, ayrı platforma özgü NuGet paketleri olarak dağıtılmış ve ortam başına doğru olanın seçilip dağıtılması gerekir. IronOCR'un tek paket dağıtım modeli bu platform matrisi tamamen ortadan kaldırır ve Linux, AWS ve Azure dağıtım kılavuzları, üretim karşısında test edilmiş yapılandırmaları yansıtır.

Sonuç

PaddleSharp, belirli dar bir senaryoda güçlü bir savunma sunar: bir ekibin ağırlıklı olarak Çince belgeleri CUDA uyumlu bir GPU ile donanımda işlemesi, CJK metni için derin öğrenme doğruluk tavanının dağıtım basitliğinden daha önemli olduğu yer. Bu gerçek bir kullanım durumudur ve içinde PaddleSharp teslim eder. Üç aşamalı nöral ağ hattı, yoğun Çince metni derin öğrenme yatırımını gerçek anlamda yansıtan bir doğrulukla tanır.

Bu senaryonun dışında, soyutlama derinliği bir yük olur. Üç üst akış bağımlılığı — Baidu'nun çıkarım çerçevesi, PaddleOCR model eğitim projesi ve PaddleSharp .NET bağlama katmanı — her biri kendi sürüm döngüleri taşırlar ve bakım uyumları garanti edilmez. İngilizce dokümantasyon seyrektir. CJK ötesindeki dil kataloğu zayıftır ve tutarsız bir biçimde bakımı yapılır. PDF girdisi ayrı bir kütüphane gerektirir. Ve bir GPU olmadan, görüntü başına CPU gecikmesi IronOCR'nin 100–400ms'ine karşı 500–1500ms'dir.

IronOCR'un ödünleşimi tersine çevriktir: tek bir ticari paket bir $999 giriş fiyatı ile, model yönetimi yok, yerel PDF ve çok formatlı giriş ve125+dil, NuGet paketleri olarak yerleşik ön işlemeyle OpenCV gereksinimini ortadan kaldırır. Abstraksiyon tasarımdan kaynaklanır ve abstraksiyon kararlıdır — API, ekiplerin uygulamalarını çalışır durumda tutmak için Baidu model formatı değişikliklerini izlemelerini gerektirmemiştir.

Genel amaçlı İngilizce veya çok dilli OCR ihtiyaçları, PDF iş akışları veya GPU donanımını dışlayan dağıtım kısıtlamaları olan ekipler için IronOCR basit bir seçimdir.IronOCR belgeleri, tüm girdi türleri, ön işleme seçenekleri ve çıktı formatları kapsamını kapsar ve eğitim merkezinde, faturalar, pasaportlar ve taranmış arşivler gibi yaygın belge türleri için çalışan kodlar bulunur.

Lütfen dikkate alınPaddleOCR, RapidOCR ve Tesseract, ilgili sahiplerinin tescilli ticari markalarıdır. Bu site, Baidu, Google, PaddlePaddle veya RapidOCR ile ilişkili, onaylanmış veya sponsorlu değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Sıkça Sorulan Sorular

PaddleSharp OCR nedir?

PaddleSharp OCR, geliştiriciler ve işletmeler tarafından görüntü ve belgelerden metin çıkarmak için kullanılan bir OCR çözümüdür. .NET uygulama geliştirme için IronOCR ile birlikte değerlendirilen birkaç OCR seçeneğinden biridir.

IronOCR, .NET geliştiricileri için PaddleSharp OCR ile nasıl karşılaştırılır?

IronOCR, ana motoru olarak IronTesseract'ı kullanan bir NuGet-yerli .NET OCR kütüphanesidir. PaddleSharp OCR ile karşılaştırıldığında, daha basit bir dağıtım (SDK yükleyiciler yok), sabit oranlı fiyatlandırma ve COM interop veya bulut bağımlılıkları olmadan temiz bir C# API sunar.

IronOCR, PaddleSharp OCR'dan daha kolay mı kuruluyor?

IronOCR, tek bir NuGet paketi aracılığıyla yüklenir. SDK kurulumları, kopyalamak için lisans dosyaları, kaydedilecek COM bileşenleri veya yönetilecek ayrı çalışma zamanı ikili dosyaları yoktur. Tüm OCR motoru paket içinde yer alır.

PaddleSharp OCR ile IronOCR arasındaki doğruluk farkları nelerdir?

IronOCR, standart iş belgeleri, faturalar, makbuzlar ve taranmış formlar için yüksek tanıma doğruluğu sağlar. Çok kötü durumda olan belgeler ya da nadir yazılar için ise doğruluk, kaynak kalitesine göre değişiklik gösterebilir. IronOCR, düşük kaliteli girişlerde tanımayı geliştirmek için görüntü ön işleme filtreleri içerir.

IronOCR, PDF metin çıkarma desteği sunuyor mu?

Evet. IronOCR, tek bir çağrıda hem yerel PDF'lerden hem de taranmış PDF görüntülerinden metin çıkarır. Çok sayfalı TIFF dosyaları, görüntüler ve akıntılar da desteklenir. Taranmış PDF'ler için, OCR sayfa bazında uygulanır ve her sayfa için sonuç nesneleri sağlanır.

PaddleSharp OCR lisanslaması, IronOCR ile nasıl karşılaştırılır?

IronOCR, sayfa veya tarama başına ücret içermeyen sabit oranlı bir süresiz lisans kullanır. Yüksek belge hacmi işleyen kuruluşlar, hacme rağmen aynı lisans maliyetini öder. Ayrıntılar ve hacim fiyatlandırması IronOCR lisans sayfasında mevcuttur.

IronOCR hangi dilleri destekliyor?

IronOCR, ayrı NuGet dil paketleri aracılığıyla 127 dili destekler. Bir dil eklemek için tek bir 'dotnet add package IronOcr.Languages.{Language}' komutu gerekir. Manuel dosya yerleştirme veya yol yapılandırması gerekmez.

.NET projesine IronOCR'yi nasıl kurarım?

NuGet üzerinden kurun: 'Install-Package IronOcr' Package Manager Console'da veya 'dotnet add package IronOcr' CLI'de. Ek dil paketleri aynı şekilde yüklenir. Yerel SDK kurucusu gerekmez.

IronOCR, PaddleSharp'tan farklı olarak Docker ve kapsüllenmiş dağıtımlar için uygun mu?

Evet. IronOCR, NuGet paketi aracılığıyla Docker konteynerlerinde çalışır. Lisans anahtarı, bir ortam değişkeni aracılığıyla ayarlanır. Lisans dosyaları, SDK yolları veya OCR motoru için hacimlerin bağlanmasına gerek yoktur.

IronOCR'yi PaddleSharp ile karşılaştırmadan önce satın almadan deneyebilir miyim?

Evet. IronOCR deneme modu, belgeleri işler ve çıkış üzerine bir filigran eklemeli OCR sonuçları döndürür. Lisans satın almadan önce kendi belgeleriniz üzerinde doğruluğu kontrol edebilirsiniz.

IronOCR, metin çıkarma yanında barkod okuma desteği sunar mı?

IronOCR, metin çıkarma ve OCR'ye odaklanır. Barkod okuma için Iron Software, eşlik eden bir kütüphane olan IronBarcode'u sağlar. Her ikisi de ayrı ayrı veya Iron Suite paketi olarak mevcuttur.

PaddleSharp OCR'den IronOCR'ye geçiş yapmak kolay mı?

PaddleSharp OCR'den IronOCR'a geçiş genellikle başlatma dizilerini IronTesseract örneklemesi ile değiştirmeyi, COM yaşam döngüsü yönetimini kaldırmayı ve API çağrılarını güncellemeyi içerir. Çoğu geçiş, kod karmaşıklığını önemli ölçüde azaltır.

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

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara