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

IronOCR ile Dynamsoft OCR Arasında Bir Karşılaştırma

Microsoft Office Document Imaging (MODI), MS Office 2003 ve 2007 ile birlikte gelen ve geliştiricilerin taranan görüntülerden doğrudan bir COM tabanlı nesne modeli aracılığıyla metin çıkarma işlemi yapmasını sağlayan bir OCR bileşeniydi. Yıllardır, MODI.Document sınıfı, TIFF ve BMP görüntü dosyalarını Visual Studio çözümleri içinde makine tarafından okunabilir metne dönüştüren sayısız belge dijitalleştirme projesini güçlendirdi.

Ancak, MODI'nin hikayesi büyük bir kusur barındırıyor: Microsoft, Office 2010 ve sonraki versiyonlarından kaldırdı ve geliştiriciler, OCR işlevlerini canlı tutmak için eski Office kurulumlarına veya bağımsız yükleyicilere güvenmek zorunda kaldı. Herhangi bir modern .NET projesi için çapraz platform dağıtımı hedefleyen, bulut ortamlarına veya güncel Windows sürümlerine, MODI ciddi bir sürtüşme sunar.

Bu makale,MODI OCRC#'ın bir .NET optik karakter tanıma kütüphanesi olan IronOCR ile kod uygulanması, özellikler, platform desteği ve lisanslama açısından nasıl karşılaştırıldığını incelemektedir. Miras kodu sürdürüyor olun veya yeni bir projeye başlıyor olun, buradaki ayrıntılar doğru seçimi yapmanıza yardımcı olacaktır.

IronOCR'u 30 gün ücretsiz deneyin ve aşağıdaki kod örneklerini takip edin.

Kıyaslama Genel Olarak Nasıl Dağılıyor?

Kategori MODI OCR IronOCR
Çekirdek Mimari COM Interop; Microsoft Office Document Imaging DLL referansı gerektirir Saf .NET kütüphanesi; C# için optimize edilmiş Tesseract 5 motoru
Platform Desteği Sadece Windows; Bilgisayarda 2003/2007 Office kurulu olmalıdır Windows, Linux, macOS, Azure, Docker, iOS, Android
Görüntü Formatları TIFF, MDI, BMP TIFF, PNG, JPEG, BMP, GIF, PDF, çok sayfalı görüntüler
Dil Desteği ~22 dili miLANG parametresi ile 125+ dil, NuGet dil paketleri aracılığıyla
OCR Doğruluğu Temiz, standart yazı karakterine sahip belgelerde yüksek Otomatik görüntü düzeltme filtreleri ile %99,8+
Çıktı Seçenekleri Layout nesnesinden düz metin Düz metin, aranabilir PDF, yapısal veri (sayfalar, satırlar, kelimeler, barkodlar)
Kurulum Ofis yükleyici + Çözüm Gezgini'nde COM referansı NuGet paketi: Install-Package IronOcr
Aktif Geliştirme Office 2007'den sonra durdurulmuş Düzenli güncellemeler ile aktif olarak sürdürülen
Lisanslama Uygun Microsoft Office lisansı gereklidir Süresiz lisanslar $999'den; ücretsiz 30 günlük deneme
Destek Yalnızca topluluk forumları E-posta, canlı sohbet ve telefon aracılığıyla doğrudan mühendislik desteği

How Does Microsoft Office Document Imaging Perform OCR in C#?

MODI, bir COM tabanlı nesne modeli aracılığıyla optik karakter tanıma (OCR) yapar. Süreç, bir MODI.Document nesnesi oluşturarak, bir görüntü dosya yolunu yükleyerek ve OCR yöntemini başlatarak görüntüleri analiz edip karakterleri tanımlamayla başlar. OCR işlemi tamamlandıktan sonra, metin ve düzen bilgileri her sayfanın Image ve Layout nesneleri aracılığıyla erişilebilir.

Bir Visual Studio projesinde MODI kullanmak için, Microsoft Office Document Imaging Tür Kütüphanesi'ne bir referans eklenmelidir. Çözüm Gezgini'nde, Referanslar klasörüne sağ tıklayın, COM sekmesini seçin ve uygun MODI sürümünü (Office 2003 için 11.0 veya Office 2007 için 12.0) seçin.

// MODI OCR: Extracting text from a scanned TIFF document
private string ExtractTextFromImage(string path)
{
    string extractedText = "";
    MODI.Document doc = new MODI.Document();
    try
    {
        // Create the document object from the image file path
        doc.Create(path);
        // Run optical character recognition with English language
        doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
        // Access the first page image and retrieve recognized text
        MODI.Image modiImage = (MODI.Image)doc.Images[0];
        extractedText = modiImage.Layout.Text;
    }
    catch (Exception ex)
    {
        // Handle OCR exceptions for unsupported or corrupted image files
        string message = ex.Message;
        Console.WriteLine(message);
    }
    finally
    {
        doc.Close(false);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
    }
    return extractedText;
}
// MODI OCR: Extracting text from a scanned TIFF document
private string ExtractTextFromImage(string path)
{
    string extractedText = "";
    MODI.Document doc = new MODI.Document();
    try
    {
        // Create the document object from the image file path
        doc.Create(path);
        // Run optical character recognition with English language
        doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
        // Access the first page image and retrieve recognized text
        MODI.Image modiImage = (MODI.Image)doc.Images[0];
        extractedText = modiImage.Layout.Text;
    }
    catch (Exception ex)
    {
        // Handle OCR exceptions for unsupported or corrupted image files
        string message = ex.Message;
        Console.WriteLine(message);
    }
    finally
    {
        doc.Close(false);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
    }
    return extractedText;
}
' MODI OCR: Extracting text from a scanned TIFF document
Private Function ExtractTextFromImage(ByVal path As String) As String
    Dim extractedText As String = ""
    Dim doc As New MODI.Document()
    Try
        ' Create the document object from the image file path
        doc.Create(path)
        ' Run optical character recognition with English language
        doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, True, True)
        ' Access the first page image and retrieve recognized text
        Dim modiImage As MODI.Image = CType(doc.Images(0), MODI.Image)
        extractedText = modiImage.Layout.Text
    Catch ex As Exception
        ' Handle OCR exceptions for unsupported or corrupted image files
        Dim message As String = ex.Message
        Console.WriteLine(message)
    Finally
        doc.Close(False)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(doc)
    End Try
    Return extractedText
End Function
$vbLabelText   $csharpLabel

Bu işlev, standart MODI iş akışını gösterir: Create yöntemi dosyayı yükler, OCR yöntemi belirtilen bir dili kullanarak tanıma yapar ve Layout.Text çıkarılan dizeyi sağlar. return extractedText ifadesi çıktıyı çağrıcıya teslim eder.

MODI, keskin, yüksek çözünürlüklü belge görüntüleri için makul bir doğruluk sunarken, önemli sınırlamaları vardır. Sadece TIFF, MDI ve BMP formatlarını destekler. Uygulamayı çalıştıran her bilgisayarda, üretim sunucuları dahil, bir Microsoft Office kurulumu gerektirir. Düşük kaliteli görüntüleri taramak, eğiklik düzeltmek veya dijital gürültüyü azaltmak için yerleşik destek yoktur. Ayrıca, MODI COM Interop'a dayandığı için .NET Core, .NET 5+ veya herhangi bir platformlar arası senaryoda kullanılamadığından, modern dağıtım hedefleri, Docker kapsayıcıları veya Azure App Services gibi, için uygun değildir.

Modern bir .NET Kütüphanesi OCR İşlevselliğini Nasıl Ele Alıyor?

IronOCR, COM Interop yaklaşımını, tek bir NuGet paketi üzerinden yüklenen saf bir .NET API ile değiştirir. IronTesseract sınıfı, dikkatlice optimize edilmiş bir Tesseract 5 motorunu kapsar ve OcrInput sınıfı, herhangi bir dış bağımlılığa gerek kalmadan, görüntü yükleme, ön işlem ve çok formatlı destek işlemlerini yürütür.

using IronOcr;
// Create the IronTesseract OCR engine object
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
input.LoadImage("scanned-document.tiff");
// Apply filters to correct low-quality scans automatically
input.Deskew();   // Straighten skewed page images
input.DeNoise();  // Remove digital noise from scanning artifacts
// Read text from the processed document
var result = ocr.Read(input);
// Output plain text
Console.WriteLine(result.Text);
// Save as a searchable PDF for document management system integration
result.SaveAsSearchablePdf("output-searchable.pdf");
using IronOcr;
// Create the IronTesseract OCR engine object
var ocr = new IronTesseract();
using var input = new OcrInput();
// Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
input.LoadImage("scanned-document.tiff");
// Apply filters to correct low-quality scans automatically
input.Deskew();   // Straighten skewed page images
input.DeNoise();  // Remove digital noise from scanning artifacts
// Read text from the processed document
var result = ocr.Read(input);
// Output plain text
Console.WriteLine(result.Text);
// Save as a searchable PDF for document management system integration
result.SaveAsSearchablePdf("output-searchable.pdf");
Imports IronOcr

' Create the IronTesseract OCR engine object
Dim ocr As New IronTesseract()
Using input As New OcrInput()
    ' Load images in any common format — PNG, JPEG, TIFF, BMP, GIF, or PDF
    input.LoadImage("scanned-document.tiff")
    ' Apply filters to correct low-quality scans automatically
    input.Deskew()   ' Straighten skewed page images
    input.DeNoise()  ' Remove digital noise from scanning artifacts
    ' Read text from the processed document
    Dim result = ocr.Read(input)
    ' Output plain text
    Console.WriteLine(result.Text)
    ' Save as a searchable PDF for document management system integration
    result.SaveAsSearchablePdf("output-searchable.pdf")
End Using
$vbLabelText   $csharpLabel

IronOCR Çıktısı

MODI OCR C# vs. IronOCR: C#'te Doğru Optik Karakter Tanıma Kütüphanesini Seçmek: Görsel 1 -IronOCR örnek çıktısı

Yukarıdaki kod, IronOCR'nin tiff taramasını sadece birkaç satırda tam bir OCR hattından geçirdiğini gösteriyor. OcrInput nesnesi nerdeyse herhangi bir görüntü dosyasını veya PDF belgesini kabul ederken, Deskew() ve DeNoise(), MODI'yi kötü sonuçlar üretmesine neden olacak yaygın tarama hatalarını düzeltir. Read metodu, her biri güven puanları ve koordinat bilgileriyle organize edilmiş sayfa, paragraf, satır ve kelime başına düzenlenmiş sadece düz metin değil, yapılı bir veri içeren bir OcrResult nesnesi döndürür.

Faturalar, formlar veya çok sayfalı TIFF dosyalarını işleyen projeler için,IronOCRbilgisayarla görme yeteneklerini de içerir ve aynı geçişte metin bölgelerini otomatik olarak bulur, barkod ve QR kod okuma özelliğine sahiptir, 125+'dan fazla dili NuGet paketleri olarak yükleyebilme desteği sunar.

Görsellerden Metin Çıkarma Söz Konusu Olduğunda Temel Farklılıklar Nelerdir?

Bu iki seçenek arasındaki gerçek fark, "kusursuz" örnek dosyaları kullanmayı bıraktığınızda ve gerçek dünya belgeleriyle uğraşmaya başladığınızda ortaya çıkar. Kahve lekeli, eğik sayfalar içeren, ya da akıllı telefonlardan düşük çözünürlükte fotoğraflar içeren karmaşık taramalar hakkında konuşuyoruz.

MODI farklı bir çağ için inşa edilmiştir, özellikle temiz, yüksek kontrastlı ofis belgeleri için. Elinizde yüksek kaliteli bir tarayıcıdan gelen bir TIFF dosyası varsa, işinizi görecektir. Ancak, görüntünüz biraz döndürülmüş ya da bir miktar dijital "gürültü" varsa, MODI doğruluğu düşer. Bu sorunları düzeltmek için yerleşik filtrelerden yoksun olduğundan, bu işlemi başlatmadan önce GDI+ya da System.Drawing gibi ikinci bir kütüphane kullanarak görselleri ön işlemden geçirmeniz gerekiyor. Belleği yönetmek de biraz zahmetlidir; Marshal.ReleaseComObject'i manuel olarak çağırmazsanız, üretimde muhtemelen hafıza sızıntısı ile karşılaşacaksınız.

IronOCR bu ağır işi sizin için kutudan çıktığı haliyle halleder. Görselleri temizlemek için özel kod yazmak yerine, sadece input.Deskew() veya input.DeNoise() çağırırsınız. Bu filtreler, belgenizin "çirkin" bile olsa motorun %99,8 doğruluk oranına ulaşmasını sağlamak için görüntüyü hazırlar.

Uzman İpucu: MODI'den geçiş yapıyorsanız, sadece kodu değiştirmekle kalmayın, layout verilerinden de faydalanın. MODI'den farklı olarak, size çoğunlukla dev bir metin "bloğu" sunarken, IronOCR, güven puanlarıyla paragrafları ve satırları ayırır. Bu, belgelerin gözle doğrulama için insana ihtiyaç duyabileceğini belirtmeniz gereken otomatik bir fatura işlemcisi oluşturuyorsanız hayat kurtarıcıdır.

Ayrıca IronOCR'nin çok sayfalı TIFF'leri ve PDF'leri tek bir nesne olarak ele aldığını belirtmekte fayda var. Eski MODI.Images koleksiyonu ile olduğu gibi manuel olarak görseller arasında döngü yapmanıza gerek yoktur. Bu sadece daha hızlı, daha temiz ve dürüst olmak gerekirse, çok daha az kırılgandır.

Geliştiriciler Eski Yaklaşımdan Nasıl Geçiş Yapabilir?

Mevcut bir projede MODI'yi değiştirmek oldukça basittir. Çekirdek geçiş, COM referansını bir NuGet paketi ile değiştirmeyi ve OCR yöntemi çağrılarını güncellemeyi içerir. İşte MODI deseninin modern eşdeğerine çevirisi:

using IronOcr;
// Replace: MODI.Document doc = new MODI.Document();
var ocr = new IronTesseract();
// Replace: doc.Create(filePath); with OcrInput
using var input = new OcrInput();
input.LoadImage("document.tiff");  // Accepts the same TIFF files MODI used
// Replace: doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
ocr.Language = OcrLanguage.English;
// Replace: modiImage.Layout.Text
var result = ocr.Read(input);
string text = result.Text;
Console.WriteLine(text);
using IronOcr;
// Replace: MODI.Document doc = new MODI.Document();
var ocr = new IronTesseract();
// Replace: doc.Create(filePath); with OcrInput
using var input = new OcrInput();
input.LoadImage("document.tiff");  // Accepts the same TIFF files MODI used
// Replace: doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
ocr.Language = OcrLanguage.English;
// Replace: modiImage.Layout.Text
var result = ocr.Read(input);
string text = result.Text;
Console.WriteLine(text);
Imports IronOcr

Dim ocr As New IronTesseract()

Using input As New OcrInput()
    input.LoadImage("document.tiff") ' Accepts the same TIFF files MODI used
    ocr.Language = OcrLanguage.English
    Dim result = ocr.Read(input)
    Dim text As String = result.Text
    Console.WriteLine(text)
End Using
$vbLabelText   $csharpLabel

Haritalama neredeyse bire birdir: MODI.Document.Create, OcrInput.LoadImage olur, dil parametreleri ile OCR metodu ocr.Language artı ocr.Read olur ve Layout.Text, sonuç.Text olur. COM referansı, Office bağımlılığı, el ile belleği yönetmek için Marshal.ReleaseComObject'e gerek yok.

Doğrudan değişimin ötesinde, geçiş aynı zamanda, MODI'de mevcut olmayan özellikleri de açar: Linux ve macOS'a platformlar arası dağıtım, bulut ve konteyner dağıtımı, aranabilir PDF çıkışı ve özel yazı tipi eğitimi kabiliyetleri ile tam Tesseract 5 motoru.

Hangi Çözüm Modern OCR İhtiyaçlarına En İyi Uygun?

MODI, Microsoft Office'in her Windows bilgisayarında standart bir armatür olduğu bir dönemde kullanılmasını sağladı. Halihazırda Office 2003 veya 2007'ye bağımlı eski sistemleri sürdüren ekipler için hala çalışabilir, ancak ilerleme yolu olmayan sona ermiş bir yazılıma kırılgan bir bağımlılığı temsil eder.

Herhangi bir yeni proje veya modernizasyona karşı karşıya olan herhangi bir eski sistem için,IronOCR eksiksiz, aktif olarak sürdürülen bir çözüm sunar. Office bağımlılığını tamamen ortadan kaldırır, her büyük platformda çalışır, eski yaklaşımla tıkanan düşük kaliteli görselleri işler ve sadece düz metni aşıp çok daha ötesinde yapılandırılmış bir OCR çıktısı sunar. Kapsamlı dokümantasyon, doğrudan mühendislik desteği ve $999'den süresiz lisanslama ile, ölçeklenebilir üretim sınıfı belge işleme için geliştirilmiştir.

Şimdi IronOCR ile başlayın.
green arrow pointer

Üretimde OCR'yi dağıtmaya hazır mısınız? IronOCR lisanslama seçeneklerini keşfedin ve takımınız için en uygun olanı bulun.

Lütfen dikkate alınMicrosoft MODI ve Tesseract kendi sahiplerinin tescilli ticari markalarıdır. Bu site, Google veya Microsoft ile ilişkilendirilmemiş, onaylanmamış veya desteklenmemiştir. 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

Microsoft Office Document Imaging (MODI) nedir?

Microsoft Office Document Imaging (MODI), MS Office 2003 ve 2007 ile birlikte gelen bir OCR bileşeniydi. Geliştiricilerin COM tabanlı bir nesne modeli kullanarak görüntülerden metin çıkarmasına olanak tanırdı.

MODI yerine neden IronOCR kullanmayı düşünmeliyim?

IronOCR, modern, tam desteklenen bir OCR kütüphanesi sunar, geliştirilmiş özellikler, daha yüksek doğruluk ve eski MODI bileşenine kıyasla .NET uygulamalarıyla daha iyi entegrasyon sağlar.

IronOCR, TIFF ve BMP görüntü dosyalarını işleyebilir mi?

Evet, IronOCR, çeşitli görüntü formatlarını işleyebilir ve TIFF ve BMP de dahil olmak üzere metni çıkarabilir, farklı belge dijitalleştirme ihtiyaçları için esneklik sağlar.

MODI'den IronOCR'a geçişin faydaları nelerdir?

IronOCR'a geçiş yapmak, daha gelişmiş OCR yeteneklerine, düzenli güncellemelere ve aktif desteğe erişim sağlar, böylece OCR projelerinizin geleceğe yönelik olduğundan emin olursunuz.

IronOCR, Visual Studio ile uyumlu mu?

Evet, IronOCR, Visual Studio ile tam uyumludur ve .NET projelerinize sorunsuz entegrasyon sağlar.

IronOCR'un doğruluğu MODI ile nasıl karşılaştırılır?

IronOCR, özellikle modern görüntü formatları ve karmaşık belgeler söz konusu olduğunda, daha eski olan MODI teknolojisine kıyasla metin tanımada daha yüksek doğruluk sağlamak üzere tasarlanmıştır.

IronOCR, geliştiricilere ne tür bir destek sunuyor?

IronOCR, geliştiricilerin uygulamalarına OCR işlevlerini entegre etmelerine yardımcı olmak için kapsamlı belgeler, kod örnekleri ve profesyonel destek sunar.

IronOCR için mevcut kod örnekleri var mı?

Evet, IronOCR, geliştiricilerin .NET uygulamalarında hızlı bir şekilde OCR uygulamaları için kullanabilecekleri çeşitli kod örnekleri sağlar.

Gerçek zamanlı metin çıkarma için IronOCR kullanılabilir mi?

IronOCR, taranan görüntü veya belgelerin anında işlenmesini gerektiren uygulamalar için uygun hale getiren gerçek zamanlı metin çıkarma yeteneğine sahiptir.

IronOCR, çok dilli metin tanımayı destekler mi?

Evet, IronOCR, belgeleri birden fazla dilde yüksek doğrulukla işleyebilmesi için çok dilli metin tanımayı destekler.

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