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

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

Optik Karakter Tanıma, ya da OCR, yazılı ve basılı metni tanıma ve dijitalleştirme sürecini ifade eder. Bu, basılı metinlerin dijital fotoğraflarını harf ve rakamlara dönüştürmek için görüntü analizi kullanan bir bilgisayar teknolojisi türüdür. Metin, bilgisayarda aranabilir ve değiştirilebilir karakter kodlarına dönüştürülür.

Geçmişte tüm belgelerin fiziksel olduğu bir dünyaydı ve gelecekte tüm belgelerin dijital olabileceği bir toplum olabilirken, şu an değişim sürecindedir. Fiziksel ve dijital belgeler bu geçiş durumunda bir arada var olmadığı için OCR gibi teknolojiler ileri geri dönüşüm için kritik öneme sahiptir.

Belge kurtarma, veri girişi ve erişilebilirlik, OCR için sadece birkaç uygulama örneğidir. OCR uygulamalarının çoğu taranmış belgelerden gelmektedir, ancak fotoğraflar da bazen kullanılmaktadır. OCR, zamanı önemli ölçüde tasarruf ettirir, çünkü malzemeyi yeniden yazmak genellikle tek başka seçenektir. Aşağıdakiler, OCR'nin nasıl kullanılabileceğine dair bazı örneklerdir:

  • Taranmış belgeler, fakslar dahil olmak üzere düzenlenebilir metin dosyaları olarak geri kazanılabilir.
  • Kitap taramaları kullanarak aranabilir ve düzenlenebilir e-kitaplar oluşturmak.
  • Ekran görüntüsü fotoğraflarını kullanarak metni aramak ve değiştirmek.
  • Görme engelli kişilere kitapları sesli metin teknolojisi kullanarak okumak.

Bunlar OCR'nin sadece birkaç uygulaması olmasına rağmen, teknolojinin birçok sektördeki esnekliğini göstermektedir. Tüm firmalardaki çalışanlar neredeyse her gün belgeler üzerine yoğun bir şekilde güvenirler, bu nedenle iş kullanımı, OCR sisteminin gelişiminde önemli bir unsurdur.

Bu makalede, en güçlü iki OCR okuyucuyu karşılaştıracağız:

  • IronOCR
  • Dynamsoft OCR

IronOCR ve Dynamsoft OCR, taranmış görüntülerin dönüştürülmesini ve PDF belgelerinin OCR işlenmesini destekleyen iki .NET OCR kütüphanesidir. Birkaç satır kod ile görüntüleri aranabilir metne dönüştürebilirsiniz. Ayrıca bireysel kelimeleri, harfleri ve paragrafları alabilirsiniz.

IronOCR — öne çıkan özellikleri

IronOCR, tam olarak taranmamış resimler ve PDF belgelerinden metin algılama, okuma ve yorumlama yeteneğini sunar. IronOCR, belgelerden ve fotoğraflardan metin çıkarmanın en basit yaklaşımını sunar, çünkü otomatik olarak düşük kaliteli taramaları keskinleştirir ve düzeltir, sapma, bozulma, arka plan gürültüsü ve perspektif sorunlarını azaltır ve çözünürlüğü ve kontrastı iyileştirir.

IronOCR, geliştiricilerin tek sayfa veya çoklu sayfa taranmış görüntüler göndermesine olanak tanır ve tüm metin, barkodu ve QR bilgilerini geri döndürecektir. OCR kütüphanesindeki bir dizi sınıf, web tabanlı, masaüstü veya konsol uygulamalarına OCR yeteneği ekler. Tesseract OCR C# ve net uygulamalar JPG, PNG, TIFF, PDF, GIF ve BMP gibi formatlar giriş olarak kullanılabilir.

IronOCR'un Optik Karakter Tanıma (OCR) motoru, birçok yaygın font, italik, ağırlık ve altını çizme kullanılarak hazırlanan metni okuyabilir. Kırpma sınıfları, OCR'nin hızlı ve doğru bir şekilde çalışmasını sağlar. Çok sayfalı belgelerle çalışırken, IronOCR'un çok iş parçacıklı motoru OCR hızını artırır.

IronOCR özellikleri

Tesseract yönetimi için IronOCR kullanıyoruz çünkü şu noktalarda benzersizdir:

  • Yalın .NET'te kutudan çıktığı gibi çalışır
  • Makinenizde Tesseract kurulumu gerektirmez
  • En yeni motorları çalıştırır: Tesseract 5 (ayrıca Tesseract 4 ve 3)
  • Herhangi bir .NET projesi için kullanılabilir: .NET Framework 4.5 +, .NET Standard 2 + ve .NET Core 2, 3 ve .NET 5
  • Geleneksel Tesseract'a göre geliştirilmiş doğruluk ve hız sunar
  • Xamarin, Mono, Azure ve Docker'ı destekler
  • NuGet paketleri ile karmaşık Tesseract sözlük sistemini yönetir
  • PDFler, Çok Çerçeveli Tiffler ve tüm büyük görüntü formatlarını yapılandırma olmaksızın destekler
  • Tesseract'ten en iyi sonuçları almak için düşük kaliteli ve eğik taramaları düzeltebilir.

Dynamsoft OCR — özellikler

Dynamsoft.NET OCR kütüphanesi, hızlı ve güvenilir optik karakter tanıma sağlayan bir .NET bileşenidir. C# veya VB.NET'te .NET masaüstü uygulamaları oluşturmak için kullanılır. Temel OCR API'lerini kullanarak PDF veya fotoğraflardaki kullanılmayan metni dijital metne dönüştürmek için kolayca kod oluşturabilirsiniz.

Tarayıcılardan ve diğer TWAIN uyumlu cihazlardan görüntüler elde edilebilir:

  • Doğal, arabelleğe alınmış bellek ve disk dosyası görüntü aktarım mekanizmaları desteklenir.
  • Otomatik belge besleyici ile toplu tarama mümkündür (ADF).
  • Yaygın cihaz işlevselliklerini değiştirmek için TWAIN öznitelikleri kullanılabilir.
  • IfAutoFeed, IfAutoScan, Çözünürlük, BitDerinliği, Parlaklık, Kontrast, Birim, Çift Yönlü ve diğer özellikler değiştirilebilir.
  • Boş sayfaların algılanmasını destekler.
  • Tarayıcı profillerini değiştirmenize ve kaydetmenize olanak tanır.

UVC ve WIA uyumlu webcamlerden görüntü yakalamak:

  • Seçilen bir webkamdan fotoğraf çekerken canlı bir video akışı gösterin.
  • Kameranın ayarlarını özelleştirin: Parlaklık, Kontrast, Renk Tonu, Doygunluk, Keskinlik, Gamma, Beyaz Dengesi, Arkaışık Dengeleme, Kazanç, Renk Etkinleştirme, Zoom, Odak, Pozlama, Diyafram, Pan, Tilt, Roll.

Sağlam Görüntü Yükleme/Görme

  • BMP, JPEG, PNG, TIFF ve çok sayfalı TIFF formatlarında görüntüler yüklenebilir.
  • Fotoğrafları büyütmek ve küçültmek desteklenir.
  • Görüntüler yerel sürücüden, bir FTP sunucusundan, bir HTTP sunucusundan veya bir veritabanından geri alınabilir.
  • BMP, JPEG, PNG ve TIFF için bir dizi en kapsamlı .NET görüntü bileşeni kullanarak resim kodlama yapılabiliyor.

Kaydet ve Yükle/İndir

  • Dosya akışı üzerinden fotoğrafları okumanıza ve yazmanıza olanak tanır.
  • Yakalanan görüntüleri BMP, JPEG, PNG, TIFF veya çok sayfalı TIFF olarak yerel sürücüye, bir web sunucusuna veya veritabanına kaydetmeyi destekler.
  • RLE, G3/G4, LZW, PackBits ve TIFF sıkıştırması desteklenir.
  • HTTPS yüklemeleri ve indirmeleri desteklenir.
  • Mevcut olan en kapsamlı .NET resim bileşeni setlerinden biri BMP, JPEG, PNG ve TIFF görüntü kodlamasını destekler.
  • Yeni elde edilen fotoğrafları mevcut TIFF dosyalarına eklemenize olanak tanır.

ASP.NET'te Taranmış PDF'lerden veya Diğer Fotoğraflardan Metin Okuma (Optik Karakter Tanıma)

Günümüzün hızlı temposunda, müşterilerin işleri hızlı bir şekilde tamamlanmasını istediklerini görüyoruz. Acil projeleri olan müşteriler sıkça bizimle iletişime geçer. Teknolojimiz, görüntüler içeren belgeleri taramayı içeren projelerde, bir fotoğrafın içeriğini basitçe tanıyabilen ve metne dönüştürebilir. Optik Karakter Tanıma (OCR), firmanızın zaman ve para tasarrufu yapmasını sağlarken, veri girişi hatalarını da azaltır.

IronOCR kullanarak

IronOCR, OCR dönüştürmelerini gerçekleştirmek için IronOcr.IronTesseract sınıfını kullanır.

Bu temel örnekte, IronOcr.IronTesseract sınıfını bir görüntüden metin okumak ve sonucunu otomatik olarak bir dize olarak geri döndürmek için kullanırız.

// PM> Install-Package IronOcr
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create a new instance of the IronTesseract class
        var ironOcr = new IronTesseract();

        // Read the text from the image
        var result = ironOcr.Read(@"img\Screenshot.png");

        // Output the text to the console
        Console.WriteLine(result.Text);
    }
}
// PM> Install-Package IronOcr
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create a new instance of the IronTesseract class
        var ironOcr = new IronTesseract();

        // Read the text from the image
        var result = ironOcr.Read(@"img\Screenshot.png");

        // Output the text to the console
        Console.WriteLine(result.Text);
    }
}
' PM> Install-Package IronOcr
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new instance of the IronTesseract class
		Dim ironOcr = New IronTesseract()

		' Read the text from the image
		Dim result = ironOcr.Read("img\Screenshot.png")

		' Output the text to the console
		Console.WriteLine(result.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

Sonuç olarak, aşağıdaki paragraf %100 doğrudur:

IronOCR Basit Örnek

Bu basit örnekte, C# OCR kütüphanemizin bir PNG'den metin okuma doğruluğunu test edeceğiz.
Görüntü. Bu çok temel bir test ama ders devam ettikçe işler daha karmaşık hale gelecektir.

Hızlı kahverengi tilki tembel köpeğin üzerinden atlar

Yüzeyde basit görünebilir, ancak yüzeyin altında karmaşık davranışlar vardır: resmin hizalanması, kalitesi ve çözünürlüğü için tarama, özelliklerine bakma, OCR motorunu optimize etme ve sonunda metni bir insanın okuyabileceği şekilde okuma.

OCR, bir makinenin yapması için zor bir görevdir ve okuma hızları, bir insanın hızına eşit olabilir. Başka bir deyişle, OCR hızlı bir işlem değildir. Ancak bu durumda, tamamen doğrudur.

C# OCR uygulama sonuçlarının doğruluğu

Gerçek dünya senaryolarında, geliştiriciler projelerinin mümkün olduğunca hızlı çalışmasını isteyecektir. Bu senaryoda, IronOCR eklemeleri ad alanının OcrInput ve IronTesseract sınıflarını kullanmanızı öneririz.

Bir OCR işinin belirli özelliklerini OcrInput ile ayarlayabilirsiniz, örneğin:

  • JPEG, TIFF, GIF, BMP ve PNG sadece bazıları kullanılabilecek resim formatlarıdır
  • PDF belgelerini tamamen veya kısmen içe aktarmak
  • Resimin kontrastını, çözünürlüğünü ve boyutunu artırmak
  • Dönme, tarama gürültüsü, dijital gürültü, eğiklik ve negatif resim düzeltme

IronTesseract

Önceden paketlenmiş yüzlerce dil ve lehçe arasından seçim yapın

  • Tesseract 5, 4 veya 3 OCR motorlarını hemen kullanın
  • Ekran görüntüsü, bir parça ya da tüm belgeyi inceliyorsak, belge türünü belirtin
  • Barkod tanıma
  • Aranabilir PDF'ler, Hocr HTML, bir DOM ve Dizeler OCR sonuçları için seçeneklerdir
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        // Use the OcrInput class to read from an image file
        using (var input = new OcrInput(@"img\Potter.tiff"))
        {
            // Perform the OCR operation
            var result = ocr.Read(input);

            // Output the recognized text to the console
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        // Use the OcrInput class to read from an image file
        using (var input = new OcrInput(@"img\Potter.tiff"))
        {
            // Perform the OCR operation
            var result = ocr.Read(input);

            // Output the recognized text to the console
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an instance of IronTesseract
		Dim ocr = New IronTesseract()

		' Use the OcrInput class to read from an image file
		Using input = New OcrInput("img\Potter.tiff")
			' Perform the OCR operation
			Dim result = ocr.Read(input)

			' Output the recognized text to the console
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Bu, 100% doğrulukla orta kalitede bir taramada bile kullanılabiliriz.

C# OCR Tiff'ten Tarama Örneği

Gördüğünüz gibi, bir TIFF gibi bir taranmış görüntüden metin (ve istenirse barkodlar) okumak oldukça kolaydı. Bu OCR işinin doğruluğu %100'dür.

Ardından aynı sayfanın düşük bir DPI ve çok sayıda bozulma ve dijital gürültü içeren ve orijinal kağıda zarar veren çok daha düşük kaliteli bir taramayı deneyeceğiz.

C# OCR Düşük Çözünürlüklü Tarama ve Dijital Gürültü

Bu, IronOCR'nin gerçekten parladığı, diğer OCR kütüphaneleri (Tesseract gibi) ile karşılaştırıldığında ve diğer OCR projelerinin gerçek dünyada taranmış görüntüler üzerinde OCR kullanımını tartışmaktan kaçındığını ve %100 OCR doğruluğunu sağlamak amacıyla dijital olarak oluşturulmuş gerçekçi olmayan 'mükemmel' test durumları yarattığını göreceğiz.

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        // Use the OcrInput class to read from a low-quality image file
        using (var input = new OcrInput(@"img\Potter.LowQuality.tiff"))
        {
            // Deskew the image to improve accuracy
            input.Deskew();

            // Perform the OCR operation
            var result = ocr.Read(input);

            // Output the recognized text to the console
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        // Use the OcrInput class to read from a low-quality image file
        using (var input = new OcrInput(@"img\Potter.LowQuality.tiff"))
        {
            // Deskew the image to improve accuracy
            input.Deskew();

            // Perform the OCR operation
            var result = ocr.Read(input);

            // Output the recognized text to the console
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an instance of IronTesseract
		Dim ocr = New IronTesseract()

		' Use the OcrInput class to read from a low-quality image file
		Using input = New OcrInput("img\Potter.LowQuality.tiff")
			' Deskew the image to improve accuracy
			input.Deskew()

			' Perform the OCR operation
			Dim result = ocr.Read(input)

			' Output the recognized text to the console
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Görüntüyü düzeltmek için Input.Deskew() eklemeden %52,5 doğruluk elde ediyoruz. Bu yeterince iyi değil.

Input.Deskew() eklemek bize %99,8 doğruluk sağlıyor ki bu, yüksek kaliteli bir taramanın OCR'sı kadar neredeyse doğrudur.

Dynamsoft OCR kullanarak

JavaScript'te TWAIN taraması ve istemci tarafı OCR yapmak için Dynamic Web TWAIN'i kullanma kod parçacıkları sunacağız.

Tarama Resimleri

Dynamic Web TWAIN'in basit API'lerini kullanarak tarama ayarlarını değiştirebilir ve TWAIN tarayıcılarından görüntü elde edebilirsiniz.

function acquireImage() {
    // Select an available TWAIN scanner
    DWObject.SelectSourceByIndex(document.getElementById("source").selectedIndex);

    // Set scanning settings like pixel type, resolution, ADF, etc.
    DWObject.IfShowUI = false; // Do not show the user interface of the scanner
    DWObject.PixelType = 1; // Scan in grayscale
    DWObject.Resolution = 300;
    DWObject.IfFeederEnabled = true; // Scan from auto feeder
    DWObject.IfDuplexEnabled = false;
    DWObject.IfDisableSourceAfterAcquire = true;

    // Acquire images from scanners
    DWObject.AcquireImage();
}
function acquireImage() {
    // Select an available TWAIN scanner
    DWObject.SelectSourceByIndex(document.getElementById("source").selectedIndex);

    // Set scanning settings like pixel type, resolution, ADF, etc.
    DWObject.IfShowUI = false; // Do not show the user interface of the scanner
    DWObject.PixelType = 1; // Scan in grayscale
    DWObject.Resolution = 300;
    DWObject.IfFeederEnabled = true; // Scan from auto feeder
    DWObject.IfDuplexEnabled = false;
    DWObject.IfDisableSourceAfterAcquire = true;

    // Acquire images from scanners
    DWObject.AcquireImage();
}
JAVASCRIPT

OCR Professional Modülünü İndirin

İstemci tarafı OCR için OCR Professional modülünü kullanmak için, başlığa ocrpro.js eklemeniz ve ayrıca OCR Pro DLL'sini indirmeniz gerekecek.

<script type="text/javascript" src="Resources/addon/dynamsoft.webtwain.addon.ocrpro.js"></script>
<script type="text/javascript" src="Resources/addon/dynamsoft.webtwain.addon.ocrpro.js"></script>
HTML

.js dosyasında düzenlemeler yapın:

// Define base path
var CurrentPathName = unescape(location.pathname);
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);

// Download the OCR Pro add-on
DWObject.Addon.OCRPro.Download(CurrentPath + "Resources/addon/OCRPro.zip", OnSuccess, OnFailure);
// Define base path
var CurrentPathName = unescape(location.pathname);
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/") + 1);

// Download the OCR Pro add-on
DWObject.Addon.OCRPro.Download(CurrentPath + "Resources/addon/OCRPro.zip", OnSuccess, OnFailure);
JAVASCRIPT

OCR kullanarak metni tanıma

Aşağıdaki kodu eklemek kadar basit bir şekilde JS OCR tanıma API'sini kullanarak taranmış görüntülerden metin çıkarabilirsiniz.

// Recognize text from the image at index 0
DWObject.Addon.OCRPro.Recognize(0, GetOCRProInfo, GetErrorInfo); // 0 is the index of the image
// Recognize text from the image at index 0
DWObject.Addon.OCRPro.Recognize(0, GetOCRProInfo, GetErrorInfo); // 0 is the index of the image
JAVASCRIPT

Görüntülerin Kırpılmış Bölgelerini Okuma

Her iki yazılım seti de OCR için görüntüleri kırpmak için çözümler sunar.

IronOCR ile kırpılmış bölgeleri okuma

Iron'un Tesseract OCR dalı, görüntülerin belirli bölgelerini okuma konusunda yeteneklidir, aşağıdaki kod örneğinde gösterildiği gibi.

Piksel cinsinden okunacak görüntünün tam bölgesini tanımlamak için System.Drawing.Rectangle kullanıyoruz.

Standart bir formun doldurulmuş olduğu ve içeriğin sadece bir kısmının durumdan duruma değiştiği bir durumla çalışırken bu gerçekten kullanışlı olabilir.

Bir Sayfa Bölümünü Tarama: Bir belgeden okuyacak bir bölgeyi belirlemek ve hızı ve doğruluğu artırmak için System.Drawing.Rectangle kullanıyoruz.

C# OCR Tiff'ten Tarama Örneği
C# OCR Tiff'ten Tarama Örneği
using IronOcr;
using System.Drawing;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        using (var input = new OcrInput())
        {
            // Define content area of interest
            var contentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };

            // Add the specific region to the input
            input.AddImage("img/ComSci.png", contentArea);

            // Perform OCR operation
            var result = ocr.Read(input);

            // Output recognized text to console
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;
using System.Drawing;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of IronTesseract
        var ocr = new IronTesseract();

        using (var input = new OcrInput())
        {
            // Define content area of interest
            var contentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };

            // Add the specific region to the input
            input.AddImage("img/ComSci.png", contentArea);

            // Perform OCR operation
            var result = ocr.Read(input);

            // Output recognized text to console
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr
Imports System.Drawing

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an instance of IronTesseract
		Dim ocr = New IronTesseract()

		Using input = New OcrInput()
			' Define content area of interest
			Dim contentArea = New Rectangle() With {
				.X = 215,
				.Y = 1250,
				.Height = 280,
				.Width = 1335
			}

			' Add the specific region to the input
			input.AddImage("img/ComSci.png", contentArea)

			' Perform OCR operation
			Dim result = ocr.Read(input)

			' Output recognized text to console
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Bu, hızda %41'lik bir artış sağlar ve daha spesifik olmamıza olanak tanır. Bu, fatura, makbuz, çek, formlar, masraf beyannamesi vb. gibi benzer ve tutarlı belgelere sahip .NET OCR uygulamaları için son derece değerlidir.

PDF'leri okurken, ContentAreas (OCR kırpma) da desteklenir.

Dynamsoft OCR ile kırpılmış bölgeleri okuma

Başlamak için Visual Studio'yu başlatın ve yeni bir C# Windows Forms Uygulaması oluşturun veya mevcut birini açın. DynamicDotNetTWAIN.dll, DynamicOCR.dll ve uygun dil paketini eklememiz gerekecek.

  1. Araçlar'a gidin -> Araç Kutusu Öğelerini Seçin, sonra .NET Framework Bileşenleri sekmesine gidin, Gözat düğmesine tıklayın ve DynamicDotNetTWAIN.dll bulun.

  2. Çözüm Gezgini'nde proje dosyasına sağ tıklayın ve Ekle -> Mevcut Öğeyi Seç ... seçeneğini belirleyin. ardından OCR kaynak dizininden gerekli öğeleri ekleyin.

Bu, LoadImage düğmesine tıklamak için koddur:

private void button1_Click(object sender, EventArgs e) 
{
    OpenFileDialog filedlg = new OpenFileDialog(); 
    if (filedlg.ShowDialog() == DialogResult.OK) 
    { 
        dynamicDotNetTwain1.LoadImage(filedlg.FileName);
        // Choose an image from your local disk and load it into Dynamic .NET TWAIN
    } 
}

private void dynamicDotNetTwain1_OnImageAreaSelected(short sImageIndex, int left, int top, int right, int bottom) 
{
    dynamicDotNetTwain1.OCRTessDataPath = "../../"; 
    dynamicDotNetTwain1.OCRLanguage = "eng";
    OcrResultFormat ocrResultFormat = Dynamsoft.DotNet.TWAIN.OCR.ResultFormat.Text;

    byte [] sbytes = dynamicDotNetTwain1.OCR(dynamicDotNetTwain1.CurrentImageIndexInBuffer, left, top, right, bottom);
    // OCR the selected area of the image

    if (sbytes != null) 
    { 
        SaveFileDialog filedlg = new SaveFileDialog(); 
        filedlg.Filter = "Text File(*.txt)| *.txt"; 
        if (filedlg.ShowDialog() == DialogResult.OK) 
        {
            FileStream fs = File.OpenWrite(filedlg.FileName); 
            fs.Write(sbytes, 0, sbytes.Length);
            // Save the OCR result as a text file
            fs.Close(); 
        }
        MessageBox.Show("OCR successful");
    } 
    else 
    {
        MessageBox.Show(dynamicDotNetTwain1.ErrorString); 
    }
}
private void button1_Click(object sender, EventArgs e) 
{
    OpenFileDialog filedlg = new OpenFileDialog(); 
    if (filedlg.ShowDialog() == DialogResult.OK) 
    { 
        dynamicDotNetTwain1.LoadImage(filedlg.FileName);
        // Choose an image from your local disk and load it into Dynamic .NET TWAIN
    } 
}

private void dynamicDotNetTwain1_OnImageAreaSelected(short sImageIndex, int left, int top, int right, int bottom) 
{
    dynamicDotNetTwain1.OCRTessDataPath = "../../"; 
    dynamicDotNetTwain1.OCRLanguage = "eng";
    OcrResultFormat ocrResultFormat = Dynamsoft.DotNet.TWAIN.OCR.ResultFormat.Text;

    byte [] sbytes = dynamicDotNetTwain1.OCR(dynamicDotNetTwain1.CurrentImageIndexInBuffer, left, top, right, bottom);
    // OCR the selected area of the image

    if (sbytes != null) 
    { 
        SaveFileDialog filedlg = new SaveFileDialog(); 
        filedlg.Filter = "Text File(*.txt)| *.txt"; 
        if (filedlg.ShowDialog() == DialogResult.OK) 
        {
            FileStream fs = File.OpenWrite(filedlg.FileName); 
            fs.Write(sbytes, 0, sbytes.Length);
            // Save the OCR result as a text file
            fs.Close(); 
        }
        MessageBox.Show("OCR successful");
    } 
    else 
    {
        MessageBox.Show(dynamicDotNetTwain1.ErrorString); 
    }
}
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim filedlg As New OpenFileDialog()
	If filedlg.ShowDialog() = DialogResult.OK Then
		dynamicDotNetTwain1.LoadImage(filedlg.FileName)
		' Choose an image from your local disk and load it into Dynamic .NET TWAIN
	End If
End Sub

Private Sub dynamicDotNetTwain1_OnImageAreaSelected(ByVal sImageIndex As Short, ByVal left As Integer, ByVal top As Integer, ByVal right As Integer, ByVal bottom As Integer)
	dynamicDotNetTwain1.OCRTessDataPath = "../../"
	dynamicDotNetTwain1.OCRLanguage = "eng"
	Dim ocrResultFormat As OcrResultFormat = Dynamsoft.DotNet.TWAIN.OCR.ResultFormat.Text

	Dim sbytes() As Byte = dynamicDotNetTwain1.OCR(dynamicDotNetTwain1.CurrentImageIndexInBuffer, left, top, right, bottom)
	' OCR the selected area of the image

	If sbytes IsNot Nothing Then
		Dim filedlg As New SaveFileDialog()
		filedlg.Filter = "Text File(*.txt)| *.txt"
		If filedlg.ShowDialog() = DialogResult.OK Then
			Dim fs As FileStream = File.OpenWrite(filedlg.FileName)
			fs.Write(sbytes, 0, sbytes.Length)
			' Save the OCR result as a text file
			fs.Close()
		End If
		MessageBox.Show("OCR successful")
	Else
		MessageBox.Show(dynamicDotNetTwain1.ErrorString)
	End If
End Sub
$vbLabelText   $csharpLabel

Uygulama böyle görünüyor:

Dynamic .NET TWAIN OCR SDK kullanarak Bölge OCR Demo Uygulaması

Görüntü Performans Ayarlama

Giriş görüntüsünün kalitesi, bir OCR görevinin hızındaki en önemli belirleyicidir. Arka plan gürültüsü ne kadar düşükse ve dpi ne kadar yüksekse, yaklaşık olarak 200 dpi'de mükemmel bir hedef değeri ile, OCR çıktısı o kadar hızlı ve doğru olur.

Dynamsoft OCR için Görüntü İşleme Teknikleri

Telefonumuzla bir kredi kartı numarasını tarama veya kağıt belgelerden metin çıkarma gibi çeşitli durumlarda OCR kullanmamız gerekiyor. Dynamsoft Etiket Tanıma (DLR) ve Dynamic Web TWAIN (DWT) içinde OCR yetenekleri bulunmaktadır.

Genel olarak mükemmel bir iş yapabilseler de, çeşitli görüntü işleme tekniklerini kullanarak sonuçları iyileştirebiliriz.

Gölgeleri Aydınlat/Kaldır

Zayıf aydınlatma koşulları OCR sonucunu etkileyebilir. Sonucu iyileştirmek için, fotoğrafları beyazlatabilir veya görüntülerden gölgeleri kaldırabiliriz.

Ters Çevir

OCR motoru genellikle koyu renkli metinlerde eğitildiğinden, açık renkli metinleri bulmak ve tanımak daha zor olabilir.

Açık renkli metin

Rengini tersine çevirirsek daha kolay tanınacaktır.

Açık metin ters çevrilmiş

Ters çevirme işlemini gerçekleştirmek için DLR'de GrayscaleTransformationModes parametresini kullanabiliriz.

İşte JSON ayarları:

"GrayscaleTransformationModes": [
    {
        "Mode": "DLR_GTM_INVERTED"
    }
]

DLR .NET'in okuma sonucu:

Açık metin sonucu

Yeniden Ölçekleme

Harf yüksekliği çok düşükse, OCR motoru iyi bir sonuç vermeyebilir. Genel olarak, resim en az 300 DPI olmalıdır.

DLR 1.1'de, harfleri büyütmenizi sağlayan bir ScaleUpModes parametresi vardır. Elbette resmi kendimiz de ölçeklendirebiliriz.

Resmi doğrudan okumak yanlış sonuç verir:

1x resim

Resmi 2 kat büyüttükten sonra sonuç doğrudur:

2x resim

Eğimi Düzelt

Metin biraz bozulmuşsa sorun olmaz. Ancak, aşırı eğilirse sonuç olumsuz yönde değişecektir. Sonucu iyileştirmek için resmi kesmemiz gerekiyor.

Bunu başarmak için, OpenCV ve Python'da Hough Hatta Dönüştürmeyi kullanabiliriz.

Yukarıdaki resmi eğimini düzeltmek için kod burada:

import cv2
import numpy as np
import math
from PIL import Image

def deskew():
    src = cv2.imread("neg.jpg", cv2.IMREAD_COLOR)
    gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    kernel = np.ones((5,5), np.uint8)
    erode_img = cv2.erode(gray, kernel)
    eroDil = cv2.dilate(erode_img, kernel)
    show_and_wait_key("eroDil", eroDil)

    canny = cv2.Canny(eroDil, 50, 150)
    show_and_wait_key("canny", canny)

    lines = cv2.HoughLinesP(canny, 0.8, np.pi / 180, 90, minLineLength=100, maxLineGap=10)
    drawing = np.zeros(src.shape[:], dtype=np.uint8)

    maxY = 0
    degree_of_bottomline = 0
    index = 0
    for line in lines:
        x1, y1, x2, y2 = line[0]
        cv2.line(drawing, (x1, y1), (x2, y2), (0, 255, 0), 1, lineType=cv2.LINE_AA)
        k = float(y1-y2)/(x1-x2)
        degree = np.degrees(math.atan(k))
        if index == 0:
            maxY = y1
            degree_of_bottomline = degree
        else:        
            if y1 > maxY:
                maxY = y1
                degree_of_bottomline = degree
        index += 1
    show_and_wait_key("houghP", drawing)

    img = Görüntü.fromarray(src)
    rotate_img = img.rotate(degree_of_bottomline)
    rotate_img_cv = np.array(rotate_img)
    cv2.imshow("rotateImg", rotate_img_cv)
    cv2.imwrite("deskewed.jpg", rotate_img_cv)
    cv2.waitKey()

def show_and_wait_key(win_name, img):
    cv2.imshow(win_name, img)
    cv2.waitKey()

if __name__ == "__main__":
    deskew()
import cv2
import numpy as np
import math
from PIL import Image

def deskew():
    src = cv2.imread("neg.jpg", cv2.IMREAD_COLOR)
    gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    kernel = np.ones((5,5), np.uint8)
    erode_img = cv2.erode(gray, kernel)
    eroDil = cv2.dilate(erode_img, kernel)
    show_and_wait_key("eroDil", eroDil)

    canny = cv2.Canny(eroDil, 50, 150)
    show_and_wait_key("canny", canny)

    lines = cv2.HoughLinesP(canny, 0.8, np.pi / 180, 90, minLineLength=100, maxLineGap=10)
    drawing = np.zeros(src.shape[:], dtype=np.uint8)

    maxY = 0
    degree_of_bottomline = 0
    index = 0
    for line in lines:
        x1, y1, x2, y2 = line[0]
        cv2.line(drawing, (x1, y1), (x2, y2), (0, 255, 0), 1, lineType=cv2.LINE_AA)
        k = float(y1-y2)/(x1-x2)
        degree = np.degrees(math.atan(k))
        if index == 0:
            maxY = y1
            degree_of_bottomline = degree
        else:        
            if y1 > maxY:
                maxY = y1
                degree_of_bottomline = degree
        index += 1
    show_and_wait_key("houghP", drawing)

    img = Görüntü.fromarray(src)
    rotate_img = img.rotate(degree_of_bottomline)
    rotate_img_cv = np.array(rotate_img)
    cv2.imshow("rotateImg", rotate_img_cv)
    cv2.imwrite("deskewed.jpg", rotate_img_cv)
    cv2.waitKey()

def show_and_wait_key(win_name, img):
    cv2.imshow(win_name, img)
    cv2.waitKey()

if __name__ == "__main__":
    deskew()
PYTHON

Tespit edilen çizgiler:

Tespit Edilen Çizgiler

Eğimi düzeltilmiş:

Eğimi düzeltilmiş resim

IronOCR için Görüntü İşleme Teknikleri

Girdi görüntüsünün kalitesi burada önemli değil çünkü IronOCR kusurlu belgeleri onarmada mükemmel (bu zaman alıcıdır ve OCR iş yüklerinin daha fazla CPU döngüsü kullanmasına neden olacaktır).

TIFF veya PNG gibi daha az dijital gürültüye sahip girdi görüntü formatlarını seçmek, JPEG gibi kayıplı görüntü formatlarına göre daha hızlı sonuçlar verebilir.

Aşağıda listelenen görüntü filtreleri performansı önemli ölçüde artırabilir:

  • OcrInput.Rotate(double degrees) — Görüntüleri saat yönünde belirtilen derece sayısı kadar döndürür. Saat yönünün tersine döndürme için negatif tamsayılar kullanılır.
  • OcrInput.Binarize() — Bu görüntü filtresi her pikseli siyah veya beyaz yapar, arada seçenek bırakmaz. Yazı ile arka plan arasındaki kontrastın çok düşük olduğu durumlarda OCR performansını artırabilir.
  • OcrInput.ToGrayScale() — Bu görüntü filtresi her pikseli gri tonlamaya dönüştürür. OCR doğruluğunu artırması olası değildir, ancak hızı artırabilir.
  • OcrInput.Contrast() — Kontrastı otomatik olarak artırır. Düşük kontrastlı taramalarda, bu filtre sıklıkla OCR hızı ve doğruluğunu artırır.
  • OcrInput.DeNoise() — Bu filtre yalnızca gürültü beklendiğinde kullanılmalıdır.
  • OcrInput.Invert() — Tüm renkleri tersine çevirir. Örneğin, beyaz siyah olur: siyah beyaz olur.
  • OcrInput.Dilate() — Gelişmiş morfoloji. Gelişme, bir şdığın kenarlarına piksel ekleme sürecidir. (Inverse of Erode)
  • OcrInput.Erode() — Gelişmiş bir morfoloji fonksiyonu. Erozyon, bir şdığın kenarlarından piksel kaldırma sürecidir. (Inverse of Dilate)
  • OcrInput.Deskew() — Görüntüyü ortogonal hale getirir ve doğru şekilde yerleştirir. Tesseract'in eğimli taramalara toleransı 5 derece kadar düşük olabileceğinden, bu OCR için oldukça kullanışlıdır.
  • DeepCleanBackgroundNoise() — Birçok arka plan gürültüsünü temizler. Sadece belgede çok fazla arka plan gürültüsü olduğunu bildiğinizde bu filtreyi kullanın çünkü açık belgelerde OCR doğruluğunu azaltabilir ve oldukça CPU yoğundur.
  • OcrInput.EnhanceResolution — Düşük çözünürlüklü fotoğrafların çözünürlüğünü artırır. OcrInput nedeniyle, bu filtre nadiren kullanılır. OcrInput düşük çözünürlüğü otomatik olarak algılayacak ve çözecektir.

IronTesseract'ı daha yüksek kaliteli taramalarda OCR hızını artırmak için kullanmak isteyebiliriz. Hız arıyorsak, burada başlayabiliriz ve ardından özellikleri tekrar açarak en uygun dengeyi bulabiliriz.

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();

// Configuration for speed tuning
        ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
        ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
        ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
        ocr.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
        ocr.Language = OcrLanguage.EnglishFast;

        using (var input = new OcrInput(@"img\Potter.tiff"))
        {
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        var ocr = new IronTesseract();

// Configuration for speed tuning
        ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
        ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
        ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
        ocr.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
        ocr.Language = OcrLanguage.EnglishFast;

        using (var input = new OcrInput(@"img\Potter.tiff"))
        {
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim ocr = New IronTesseract()

' Configuration for speed tuning
		ocr.Configuration.BlackListCharacters = "~`$#^*_}{][|\"
		ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto
		ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
		ocr.Configuration.EngineMode = TesseractEngineMode.LstmOnly
		ocr.Language = OcrLanguage.EnglishFast

		Using input = New OcrInput("img\Potter.tiff")
			Dim result = ocr.Read(input)
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Bu sonuç, %99,8 doğrulukla, %100 referans çizgisine kıyasla – %35 daha hızlıdır.

Lisanslama ve Fiyatlandırma

Dynamsoft Lisanslama ve Fiyatlandırma

Yıllık lisans. Tüm fiyatlar, ücretsiz yazılım yükseltmelerini ve premium desteği içeren bir yıl bakım süresini içerir.

Dynamsoft iki tür lisans sunar:

Cihaz başına lisans

"Bir İstemci Cihaz Lisansı", tek bir istemci cihazından yazılımın özelliklerini kullanmak için aynı kaynak asıllı Bir Uygulamaya (aynı protokol, aynı ana bilgisayar ve aynı port) erişimi sağlar. 90 gün üst üste herhangi bir yazılım yeteneğine erişmemiş bir istemci cihazı inaktif bir cihaza sayılır. İnaktif bir istemci cihazın lisans koltuğu hemen serbest bırakılır ve başka herhangi bir aktif istemci cihazı tarafından kullanılmak üzere hazır hale getirilir. İzin verilen maksimum lisans koltuk sayısına ulaştığınızda, Dynamsoft acil durum kullanımı için ekstra %10'luk bir istemci cihaz haklılığı verecektir. Ek istemci cihaz hakları tükendiğinde, lisans koltukları tekrar kullanılabilir hale gelene dek yeni istemci cihazları yazılıma erişemez ve yazılımı kullanamaz. Müşteri cihazı haklarınızı aşmanız, zaten lisanslanmış olan müşteri cihazları üzerinde hiçbir etkisi yoktur.

Sunucu başına lisans

Uygulamayı tek bir sunucuya dağıtmak için "Bir Sunucu Lisansı" gereklidir. Sunucular, fiziksel ve sanal sunucuları ifade eder ve bunlar, üretim sunucuları, devreye alma sunucuları, aynı zamanda test için kullanılan geliştirme sunucuları, kalite güvence sunucuları, test sunucuları ve aşama sunucuları gibi bir lisansa ihtiyaç duyan, ancak bunlarla sınırlı olmamak üzere içerir. Sürekli entegrasyon sunucuları (yapım sunucuları) veya localhost geliştirme sunucuları için ek lisanslar gerekiyor değildir. Sunucu başına olan lisans, yalnızca yerinde sunucu kurulumları için geçerlidir ve bulut dağıtımları için geçerli değildir.

Dynamsoft OCR fiyatlandırması yıllık 1.249 USD'den başlamaktadır.

IronOCR Lisanslama ve Fiyatlandırma

Geliştiriciler olarak, hepimiz projelerimizi mümkün olan en az parayla ve kaynakla gerçekleştirmek istiyoruz — bütçeleme kritik bir öneme sahiptir. Hangi lisansın gereksinimlerinize ve bütçenize en uygun olduğunu belirlemek için tabloyu inceleyin.

IronOCR, projenizin gereksinimlerini karşılayabilmenize olanak tanıyan özelleştirilebilir sayıda geliştirici, proje ve konum ile lisanslar sağlar ve yalnızca ihtiyacınız olan kapsama için ödeme yaparsınız.

IronOCR lisanslama anahtarları, ürününüzü bir filigran olmadan yayınlamanızı sağlar.

Lisanslar $999'den başlar ve bir yıl destek ve güncellemeleri içerir.

Ayrıca, IronOCR'u ücretsiz denemek için bir deneme lisansı anahtarı da kullanabilirsiniz.

Sonuç

IronOCR ile Mac, Windows, Linux, Azure OCR ve Docker üzerinde Tesseract OCR kullanılabilir. .NET Framework 4.0 veya üstü gereklidir, .NET Standard 2.0+, .NET Core 2.0+, .NET 5, macOS ve Linux için Mono, macOS için Xamarin gibi birçok platformda geliştirme örnekleri. IronOCR ayrıca Tesseract 5 motorunun en son sürümünü kullanarak tüm ana görüntü ve PDF formatlarından metin, barkodlar ve QR kodlarını okur. Bu kütüphane, dakikalar içinde masaüstü, konsol veya web uygulamalarınıza OCR işlevselliği ekler! OCR ayrıca PDF'leri okuyabilir ve çok sayfalı TIFF'ler okunabilir PDF belge veya herhangi bir OCR Tarama içinde XHTML olarak kaydedilebilir. Veri çıkış seçeneklerinden bazıları arasında düz metin, barkod verileri ve paragrafları, satırları, kelimeleri ve karakterleri kapsayan bir OCR sonuç sınıfı bulunur. Arapça, Çince, İngilizce, Fince, Fransızca, Almanca, İbranice, İtalyanca, Japonca, Korece, Portekizce, Rusça ve İspanyolca dahil 125 dilde kullanılabilir, ancak özel dil paketleri de oluşturulabilir.

Dinamik .NET TWAIN OCR eklentisi, WinForms ve WPF uygulamalarında kullanabileceğiniz hızlı ve güvenilir bir .NET bileşenidir. Dinamik .NET TWAIN'in görüntü yakalama modülünü kullanarak belgeleri tarar veya web kameralardan fotoğrafları çekebilir ve ardından bu görüntüler üzerinde OCR yaparak görüntülerdeki metni metin, aranabilir PDF dosyalarına veya dizelerine dönüştürebilirsiniz. İngilizceye ek olarak birden fazla Asya dili ve Arapça sunulmaktadır.

IronOCR, Dynamsoft OCR'den daha iyi bir lisanslama avantajı sunmaktadır; IronOCR, bir yıl ücretsiz olarak $999'den başlarken, Dynamsoft $1249 ile ücretsiz deneme sunar. IronOCR ayrıca birden fazla kullanıcı için lisanslar sunar, oysa Dynamsoft'ta kullanıcı başına yalnızca bir lisans alırsınız.

Her iki yazılım seti de mobil metin ve barkodların OCR okumalarındaki en iyi performansı sunmayı amaçlarken, IronOCR başarılı bir şekilde kötü durumda olan görüntülerde bile ışığını parlatmayı başarır. En iyi OCR sonuçlarını elde etmek için gelişmiş ayarlama yöntemlerini otomatik olarak yerine getirir. IronOCR ayrıca minimal veya hiç hata olmadan en iyi sonuçları almak için Tesseract'ı kullanır.

Iron Software ayrıca müşterilerine ve kullanıcılarına tüm yazılım paketini yalnızca iki tıkla alma seçeneği sunmaktadır. Bu, Iron Software paketinde iki bileşenin fiyatına, şu anda tüm beş bileşeni ve kesintisiz desteği alabileceğiniz anlamına gelir.

[[i: (Dynamsoft OCR, ilgili sahibinin tescilli bir markasıdır. Bu site, Dynamsoft OCR ile bağlantılı, destekli 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

Metin görüntülerini C# kullanarak dijital formatlara nasıl dönüştürebilirim?

C#'ta IronOCR'u kullanarak metin görüntülerini dijital formatlara dönüştürebilirsiniz. IronOCR, çeşitli görüntü formatlarını metne dönüştürmek için idealdir, düşük kaliteli taramaları otomatik olarak keskinleştirir ve düzeltir.

IronOCR, düşük kaliteli taramalarla başa çıkmak için ne gibi avantajlar sunuyor?

IronOCR, düşük kaliteli tarama görüntülerindeki eğrilik, bozulma ve arka plan gürültüsünü azaltıp çözünürlüğü ve kontrastı artırarak otomatik olarak geliştirir ve bu da metin tanımada daha yüksek doğruluk sağlar.

Çapraz platform uygulamaları için hangi OCR kütüphanesi daha iyi?

IronOCR, Xamarin ve Azure gibi ortamları desteklediği için çapraz platform uygulamaları için uygundur, böylece geliştiriciler çeşitli platformlarla çalışırken esneklik sunar.

IronOCR hangi görüntü formatlarını destekliyor?

IronOCR, çeşitli OCR uygulamaları için esnek hale getirerek geniş bir görüntü formatı yelpazesini destekler. Görüntüleri ve PDF belgelerini işleyebilir, çeşitli giriş kaynaklarını ele alma esnekliği sağlar.

OCR teknolojisi işletmelerde belge yönetimine yardımcı olabilir mi?

Evet, OCR teknolojisi, fiziksel belgeleri dijitalleştirerek aranabilir ve düzenlenebilir hale getirme yoluyla belge yönetimine önemli ölçüde katkı sağlayabilir. Bu, manuel veri girişini azaltır, hataları en aza indirir ve erişilebilirliği artırır.

Dynamsoft OCR cihazlardan görüntü alımını nasıl işler?

Dynamsoft OCR, TWAIN'le uyumlu cihazlardan ve web kameralardan görüntü alımını destekleyerek toplu tarama ve verimli görüntü işleme için tarayıcı özniteliklerini değiştirme sağlar.

IronOCR'un diğer kütüphanelere göre fiyatlandırma seçenekleri nelerdir?

IronOCR, geliştirici sayısı, projeler ve konumlara göre özelleştirilebilen lisanslar sunar, bu da bazı diğer kütüphanelere kıyasla daha esnek ve uygun maliyetli seçenekler sağlar.

OCR teknolojisini kullanırken karşılaşılan bazı yaygın sorunlar nelerdir?

OCR teknolojisinin yaygın sorunları, düşük çözünürlüklü görüntülerle çalışma, bozulma ve değişen metin yazı tiplerini içerir. Ancak, IronOCR gibi kütüphaneler, bu tür sorunları ele alan ve OCR doğruluğunu artıran yerleşik özelliklere sahiptir.

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