C# OCR Image to Text Tutorial: Convert Images to Text Without Tesseract
Tesseract'ın karmaşık yapılandırma sıkıntısı olmadan C#'ta görüntüleri metne çevirmek mi istiyorsunuz? Bu kapsamlı IronOCR C# öğreticisi, sadece birkaç satır kodla .NET uygulamalarınızda güçlü optik karakter tanıma işlemlerini nasıl uygulayacağınızı gösterir.
Hızlı Başlangıç: Bir Satırda Görüntüden Metin Çıkartın
Bu örnek IronOCR'ye hakim olmanın ne kadar kolay olduğunu gösterir—sadece bir satır C# kodu, görüntünüzü metne dönüştürür. Bu, OCR motorunun başlatılmasını ve karmaşık kurulum olmaksızın hemen metin okumasını ve almasını gösterir.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin
PM > Install-Package IronOcr -
Bu kod parçasını kopyalayıp çalıştırın.
string text = new IronTesseract().Read("image.png").Text; -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile
Minimal Is Akisi (5 adimda)
- IronOCR - C# görüntüden metne dönüştürme kütüphanesini indirin
IronTesseractsınıfını kullanarak görüntülerden anında metin okuyun- Düşük kaliteli taramalardaki OCR doğruluğunu artırmak için görüntü filtrelerini uygulayın
- İndirilebilir dil paketleri ile birden fazla dili işleyin
- Sonuçları aranabilir PDF'ler olarak dışa aktarın veya metin dizelerini çıkarın
.NET Uygulamalarında Görüntülerden Metin Nasıl Okunur?
.NET uygulamalarınızda C# OCR görüntüden metne işlevselliği elde etmek için güvenilir bir OCR kütüphanesine ihtiyaçınız olacak. IronOCR, harici bağımlılıklar gerektirmeden hem doğruluk hem de hızı maksimize eden IronOcr.IronTesseract sınıfını kullanarak yönetilen bir çözüm sunar.
Öncelikle IronOCR'yi Visual Studio projenize yükleyin. IronOCR DLL'ini doğrudan indirebilir veya NuGet Paket Yöneticisini kullanabilirsiniz.
Install-Package IronOcr
Neden Tesseract Olmadan C# OCR için IronOCR'yi Seçmelisiniz?
C#'ta görüntüleri metne çevirmek gerektiğinde, IronOCR geleneksel Tesseract uygulamalarına göre önemli avantajlar sunar:
- Saf .NET ortamlarında hemen çalışır
- Tesseract kurulumu veya yapılandırması gerekmez
- En son motorları çalıştırır: Tesseract 5 (artı Tesseract 4 & 3)
- .NET Framework 4.6.2+, .NET Standard 2+ ve .NET Core 2, 3, 5, 6, 7, 8, 9 ve 10 ile uyumludur
- Vanilya Tesseract'a göre doğruluğu ve hızı artırır
- Xamarin, Mono, Azure ve Docker dağıtımlarını destekler
- NuGet paketleriyle karmaşık Tesseract sözlüklerini yönetir
- PDF'leri, Çok Çerçeveli TIFF'leri ve tüm ana görüntü formatlarını otomatik olarak işler
- En iyi sonuçlar için düşük kaliteli ve eğri taramaları düzeltir
Temel OCR için IronOCR C# Eğitimini Nasıl Kullanırım?
Bu Iron Tesseract C# örneği, IronOCR kullanarak görüntüden metin okumak için en basit yolu gösterir. IronOcr.IronTesseract sınıfı, metni çıkarır ve bir dize olarak döndürür.
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup
using IronOcr;
using System;
try
{
// Initialize IronTesseract for OCR operations
var ocrEngine = new IronTesseract();
// Path to your image file - supports PNG, JPG, TIFF, BMP, and more
var imagePath = @"img\Screenshot.png";
// Create input and perform OCR to convert image to text
using (var input = new OcrInput(imagePath))
{
// Read text from image and get results
OcrResult result = ocrEngine.Read(input);
// Display extracted text
Console.WriteLine(result.Text);
}
}
catch (OcrException ex)
{
// Handle OCR-specific errors
Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
// Handle general errors
Console.WriteLine($"Error: {ex.Message}");
}
// Basic C# OCR image to text conversion using IronOCR
// This example shows how to extract text from images without complex setup
using IronOcr;
using System;
try
{
// Initialize IronTesseract for OCR operations
var ocrEngine = new IronTesseract();
// Path to your image file - supports PNG, JPG, TIFF, BMP, and more
var imagePath = @"img\Screenshot.png";
// Create input and perform OCR to convert image to text
using (var input = new OcrInput(imagePath))
{
// Read text from image and get results
OcrResult result = ocrEngine.Read(input);
// Display extracted text
Console.WriteLine(result.Text);
}
}
catch (OcrException ex)
{
// Handle OCR-specific errors
Console.WriteLine($"OCR Error: {ex.Message}");
}
catch (Exception ex)
{
// Handle general errors
Console.WriteLine($"Error: {ex.Message}");
}
' Basic C# OCR image to text conversion using IronOCR
' This example shows how to extract text from images without complex setup
Imports IronOcr
Imports System
Try
' Initialize IronTesseract for OCR operations
Dim ocrEngine = New IronTesseract()
' Path to your image file - supports PNG, JPG, TIFF, BMP, and more
Dim imagePath = "img\Screenshot.png"
' Create input and perform OCR to convert image to text
Using input = New OcrInput(imagePath)
' Read text from image and get results
Dim result As OcrResult = ocrEngine.Read(input)
' Display extracted text
Console.WriteLine(result.Text)
End Using
Catch ex As OcrException
' Handle OCR-specific errors
Console.WriteLine($"OCR Error: {ex.Message}")
Catch ex As Exception
' Handle general errors
Console.WriteLine($"Error: {ex.Message}")
End Try
Bu kod, net görüntülerde %100 doğruluğa ulaşır ve metni göründüğü gibi tam anlamıyla çıkarır:
IronOCR Simple Example
In this simple example we test the accuracy of our C# OCR library to read text from a PNG Image. This is a very basic test, but things will get more complicated as the tutorial continues.
The quick brown fox jumps over the lazy dog
IronTesseract sınıfı, karmaşık OCR işlemlerini dahili olarak yönetir. IronOCR'yi kullanarak insan seviyesi doğrulukla görüntüden metin okumak için hizalamayı otomatik olarak tarar, çözünürlüğü optimize eder ve AI kullanır.
Görüntü analizi, motor optimizasyonu ve akıllı metin tanıma dahil olmak üzere arka planda gelişmiş işlemler gerçekleşse de, OCR süreci, olağanüstü doğruluk seviyelerini koruyarak insan okuma hızına denk gelir.
Bir PNG görüntüsünden metin çıkarma yeteneğini mükemmel doğrulukla gösteren IronOCR ekran görüntüsü
Gelişmiş C# OCR'yi Tesseract Yapılandırması Olmadan Nasıl Uygularım?
C#'da görüntüleri metne dönüştürürken optimal performans gerektiren üretim uygulamaları için OcrInput ve IronTesseract sınıflarını birlikte kullanın. Bu yaklaşım, OCR süreci üzerinde ayrıntılı kontrol sağlar.
OcrInput Sınıfı Özellikleri
- Birden çok görüntü formatını işler: JPEG, TIFF, GIF, BMP, PNG
- Tam PDF'leri veya belirli sayfaları içe aktarır
- Kontrast, çözünürlük ve görüntü kalitesini otomatik olarak artırır
- Dönüş, tarama gürültüsü, eğiklik ve negatif görüntüleri düzeltir
IronTesseract Sınıfı Özellikleri
- 127'den fazla önceden paketlenmiş dile erişim
- Tesseract 5, 4 ve 3 motorları dahil
- Belge tipi belirtimi (ekran görüntüsü, parça veya tam belge)
- Entegre barkod okuma yetenekleri
- Birden fazla çıktı formatı: Aranabilir PDF'ler, HOCR HTML, DOM nesneleri ve dizeler
OcrInput ve IronTesseract ile Nasıl Başlanır?
Çoğu belge tipiyle iyi çalışan bu IronOCR C# eğitimi için önerilen bir yapılandırma:
using IronOcr;
// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();
// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
// Process specific pages from multi-page TIFF files
int[] pageIndices = new int[] { 1, 2 };
// Load TIFF frames - perfect for scanned documents
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Execute OCR to read text from image using IronOCR
OcrResult result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
using IronOcr;
// Initialize IronTesseract for advanced OCR operations
IronTesseract ocr = new IronTesseract();
// Create input container for processing multiple images
using (OcrInput input = new OcrInput())
{
// Process specific pages from multi-page TIFF files
int[] pageIndices = new int[] { 1, 2 };
// Load TIFF frames - perfect for scanned documents
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Execute OCR to read text from image using IronOCR
OcrResult result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
Imports IronOcr
' Initialize IronTesseract for advanced OCR operations
Private ocr As New IronTesseract()
' Create input container for processing multiple images
Using input As New OcrInput()
' Process specific pages from multi-page TIFF files
Dim pageIndices() As Integer = { 1, 2 }
' Load TIFF frames - perfect for scanned documents
input.LoadImageFrames("img\Potter.tiff", pageIndices)
' Execute OCR to read text from image using IronOCR
Dim result As OcrResult = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End Using
Bu yapılandırma, orta kalite taramalar üzerinde tutarlı olarak neredeyse mükemmel doğruluk sağlar. LoadImageFrames metodu, çok sayfalı belgeleri verimli bir şekilde yönetir ve toplu işlem senaryoları için idealdir.
IronOCR'nin çok sayfalı metin çıkarma yeteneklerini gösteren örnek TIFF belgesi
Taranan belgelerdeki görüntülerden ve barkodlardan metin okuma yeteneği, IronOCR'nin karmaşık OCR görevlerini nasıl kolaylaştırdığını gösterir. Kütüphane, çok sayfalı TIFF'leri ve gerçek dünya belgelerini sorunsuz bir şekilde işleyerek PDF metin çıkarma ile mükemmelleşir.
IronOCR Düşük Kaliteli Taramaları Nasıl İşler?
IronOCR'nin, görüntü filtrelerini kullanarak doğru bir şekilde işleyebileceği gürültülü düşük çözünürlüklü belge
Bozulma ve dijital gürültü içeren kusurlu taramalarla çalışırken, IronOCR diğer C# OCR kütüphanelerinden daha iyi performans gösterir. Pristine test görüntüleri yerine gerçek dünya senaryoları için özel olarak tasarlanmıştır.
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;
var ocr = new IronTesseract();
try
{
using (var input = new OcrInput())
{
// Load specific pages from poor-quality TIFF
var pageIndices = new int[] { 0, 1 };
input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);
// Apply deskew filter to correct rotation and perspective
input.Deskew(); // Critical for improving accuracy on skewed scans
// Perform OCR with enhanced preprocessing
OcrResult result = ocr.Read(input);
// Display results
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error during OCR: {ex.Message}");
}
// Advanced Iron Tesseract C# example for low-quality images
using IronOcr;
using System;
var ocr = new IronTesseract();
try
{
using (var input = new OcrInput())
{
// Load specific pages from poor-quality TIFF
var pageIndices = new int[] { 0, 1 };
input.LoadImageFrames(@"img\Potter.LowQuality.tiff", pageIndices);
// Apply deskew filter to correct rotation and perspective
input.Deskew(); // Critical for improving accuracy on skewed scans
// Perform OCR with enhanced preprocessing
OcrResult result = ocr.Read(input);
// Display results
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error during OCR: {ex.Message}");
}
' Advanced Iron Tesseract C# example for low-quality images
Imports IronOcr
Imports System
Private ocr = New IronTesseract()
Try
Using input = New OcrInput()
' Load specific pages from poor-quality TIFF
Dim pageIndices = New Integer() { 0, 1 }
input.LoadImageFrames("img\Potter.LowQuality.tiff", pageIndices)
' Apply deskew filter to correct rotation and perspective
input.Deskew() ' Critical for improving accuracy on skewed scans
' Perform OCR with enhanced preprocessing
Dim result As OcrResult = ocr.Read(input)
' Display results
Console.WriteLine("Recognized Text:")
Console.WriteLine(result.Text)
End Using
Catch ex As Exception
Console.WriteLine($"Error during OCR: {ex.Message}")
End Try
Input.Deskew() kullandığınızda, doğruluk düşük kaliteli taramalarda %99,8'e yükselir ve neredeyse yüksek kaliteli sonuçlarla eşleşir. Bu, IronOCR'nin Tesseract komplikasyonları olmadan C# OCR için neden tercih edilen seçim olduğunu gösterir.
Görüntü filtreleri, işlemi biraz yavaşlatabilir ancak genel OCR süresini önemli ölçüde azaltır. Doğru dengeyi bulmak, belge kalitenize bağlıdır.
Çoğu senaryo için, Input.Deskew() ve Input.DeNoise() OCR performansına güvenilir iyileştirmeler sağlar. Görüntü ön işleme teknikleri hakkında daha fazla bilgi edinin.
OCR Performansını ve Hızını Nasıl Optimize Edersiniz?
C#'ta görüntüleri metne çevirirken OCR hızını etkileyen en önemli faktör giriş kalitesidir. Gürültünün minimum olduğu ~200 dpi'lik yüksek DPI, en hızlı ve en doğru sonuçları üretir.
IronOCR, kusurlu belgeleri düzeltmekte üstün olsa da, bu iyileştirme ek işlem süresi gerektirir.
Minimum sıkıştırma artefaktlarına sahip görüntü formatlarını seçin. Dijital gürültünün daha düşük olması nedeniyle TIFF ve PNG genellikle JPEG'den daha hızlı sonuç verir.
Hangi Görüntü Filtreleri OCR Hızını Artırır?
C# OCR görüntüden metne iş akışınızda performansı ciddi şekilde artırabilecek aşağıdaki filtreler vardır:
OcrInput.Rotate(double degrees): Resimleri saat yönünde döndürür (ters yönde için negatif)OcrInput.Binarize(): Düşük kontrastlı senaryolarda performansı artıran siyah/beyaz dönüşümOcrInput.ToGrayScale(): Olası hız iyileştirmeleri için gri tonlamaya dönüştürürOcrInput.Contrast(): Daha iyi doğruluk için kontrastı otomatik ayarlarOcrInput.DeNoise(): Gürültü bekleniyorsa dijital artefaktları kaldırırOcrInput.Invert(): Siyah zemin üzerine beyaz metin için renkleri ters çevirirOcrInput.Dilate(): Metin sınırlarını genişletirOcrInput.Erode(): Metin sınırlarını daraltırOcrInput.Deskew(): Hizalamayı düzeltir - eğik belgeler için esastırOcrInput.DeepCleanBackgroundNoise(): Agresif gürültü temizlemeOcrInput.EnhanceResolution: Düşük çözünürlükteki görüntü kalitesini iyileştirirOcrInput.DetectPageOrientation(): Sayfa döndürmeyi algılar ve düzeltir. Doğruluk/hız dengesi kontrolü için birOrientationDetectionModegeçirin:Fast,Balanced,DetailedveyaExtremeDetailed(v2025.8.6 eklendi)
Scale() ve EnhanceResolution(), v2025.12.3'te bilinen bir sorun nedeniyle SaveAsSearchablePdf() ile uyumsuzdur. Diğer tüm filtreler, arama yapılabilir PDF çıktısıyla doğru çalışır.
IronOCR'yi Maksimum Hız İçin Nasıl Yapılandırırsınız?
Yüksek kaliteli taramaları işlerken hızı optimize etmek için bu ayarları kullanın:
using IronOcr;
// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();
// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";
// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;
using (OcrInput input = new OcrInput())
{
// Load specific pages from document
int[] pageIndices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Read with optimized settings
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
using IronOcr;
// Configure for speed - ideal for clean documents
IronTesseract ocr = new IronTesseract();
// Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\\";
// Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
// Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast;
using (OcrInput input = new OcrInput())
{
// Load specific pages from document
int[] pageIndices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
// Read with optimized settings
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
Imports IronOcr
' Configure for speed - ideal for clean documents
Private ocr As New IronTesseract()
' Exclude problematic characters to speed up recognition
ocr.Configuration.BlackListCharacters = "~`$#^*_{[]}|\"
' Use automatic page segmentation
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto
' Select fast English language pack
ocr.Language = OcrLanguage.EnglishFast
Using input As New OcrInput()
' Load specific pages from document
Dim pageIndices() As Integer = { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageIndices)
' Read with optimized settings
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
Bu optimize edilmiş kurulum, varsayılan ayarlara kıyasla %35 hız artışı sağlarken %99,8 doğruluğu korur.
C# OCR kullanarak Görüntülerin Belirli Alanlarını Nasıl Okuruz?
Aşağıdaki Iron Tesseract C# örneği, System.Drawing.Rectangle kullanarak belirli bölgeleri hedeflemeyi gösterir. Bu teknik, metnin öngörülebilir yerlerde göründüğü standartlaştırılmış formları işlerken paha biçilmezdir.
IronOCR, Kırpılmış Bölgeleri Daha Hızlı Sonuçlar için İşleyebilir mi?
Piksel tabanlı koordinatlar kullanarak, OCR'yi belirli alanlarla sınırlayabilir, hızı önemli ölçüde artırabilir ve istenmeyen metin çıkarmalarını önleyebilirsiniz:
using IronOcr;
using IronSoftware.Drawing;
// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Define exact region for OCR - coordinates in pixels
var contentArea = new System.Drawing.Rectangle(
x: 215,
y: 1250,
width: 1335,
height: 280
);
// Load image with specific area - perfect for forms and invoices
input.LoadImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
using IronOcr;
using IronSoftware.Drawing;
// Initialize OCR engine for targeted region processing
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Define exact region for OCR - coordinates in pixels
var contentArea = new System.Drawing.Rectangle(
x: 215,
y: 1250,
width: 1335,
height: 280
);
// Load image with specific area - perfect for forms and invoices
input.LoadImage("img/ComSci.png", contentArea);
// Process only the defined region
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
' Initialize OCR engine for targeted region processing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Define exact region for OCR - coordinates in pixels
Dim contentArea As New System.Drawing.Rectangle(215, 1250, 1335, 280)
' Load image with specific area - perfect for forms and invoices
input.LoadImage("img/ComSci.png", contentArea)
' Process only the defined region
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
End Using
Bu hedeflenmiş yaklaşım, yalnızca ilgili metni çıkarırken %41 hız artışı sağlar. Faturalar, çekler ve formlar gibi yapılandırılmış belgeler için idealdir. Aynı kırpma tekniği, PDF OCR işlemleri ile sorunsuz çalışır.
IronOCR'un dikdörtgen seçim özelliğini kullanarak hassas bölge tabanlı metin çıkarımı yapan belge
IronOCR Kaç Dili Destekler?
IronOCR, kullanışlı dil paketleri aracılığıyla 127 uluslararası dil sağlar. Web sitemizden veya NuGet Paket Yöneticisi aracılığıyla bunları DLL olarak indirebilirsiniz.
NuGet arayüzü üzerinden ("IronOcr.Languages" ara) dil paketlerini yükleyin veya tam dil paketi listesine göz atın.
Desteklenen diller arasında Arapça, Çince (Basitleştirilmiş/Geleneksel), Japonca, Korece, Hintçe, Rusça, Almanca, Fransızca, İspanyolca ve 115'ten fazla başka dil dahildir, her biri doğru metin tanıma için optimize edilmiştir.
Birden Fazla Dilde OCR Nasıl Uygulanır?
Bu IronOCR C# öğretici örneği, Arapça metin tanımayı gösterir:
Install-Package IronOcr.Languages.Arabic
IronOCR, GIF resminden Arapça metni doğru bir şekilde çıkarmaktadır
// Install-Package IronOcr.Languages.Arabic
using IronOcr;
// Configure for Arabic language OCR
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;
using (var input = new OcrInput())
{
// Load Arabic text image
input.LoadImage("img/arabic.gif");
// IronOCR handles low-quality Arabic text that standard Tesseract cannot
var result = ocr.Read(input);
// Save to file (console may not display Arabic correctly)
result.SaveAsTextFile("arabic.txt");
}
// Install-Package IronOcr.Languages.Arabic
using IronOcr;
// Configure for Arabic language OCR
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;
using (var input = new OcrInput())
{
// Load Arabic text image
input.LoadImage("img/arabic.gif");
// IronOCR handles low-quality Arabic text that standard Tesseract cannot
var result = ocr.Read(input);
// Save to file (console may not display Arabic correctly)
result.SaveAsTextFile("arabic.txt");
}
Imports IronOcr
' Configure for Arabic language OCR
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.Arabic
Using input As New OcrInput()
' Load Arabic text image
input.LoadImage("img/arabic.gif")
' IronOCR handles low-quality Arabic text that standard Tesseract cannot
Dim result = ocr.Read(input)
' Save to file (console may not display Arabic correctly)
result.SaveAsTextFile("arabic.txt")
End Using
IronOCR, Birden Fazla Dil Belgeleri İşleyebilir mi?
Belgeler karışık diller içerdiğinde, IronOCR, çoklu dil desteği için yapılandırılır:
Install-Package IronOcr.Languages.ChineseSimplified
// Multi-language OCR configuration
using IronOcr;
var ocr = new IronTesseract();
// Set primary language
ocr.Language = OcrLanguage.ChineseSimplified;
// Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English);
// Custom .traineddata files can be added for specialized recognition
// ocr.AddSecondaryLanguage("path/to/custom.traineddata");
using (var input = new OcrInput())
{
// Process multi-language document
input.LoadImage("img/MultiLanguage.jpeg");
var result = ocr.Read(input);
result.SaveAsTextFile("MultiLanguage.txt");
}
// Multi-language OCR configuration
using IronOcr;
var ocr = new IronTesseract();
// Set primary language
ocr.Language = OcrLanguage.ChineseSimplified;
// Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English);
// Custom .traineddata files can be added for specialized recognition
// ocr.AddSecondaryLanguage("path/to/custom.traineddata");
using (var input = new OcrInput())
{
// Process multi-language document
input.LoadImage("img/MultiLanguage.jpeg");
var result = ocr.Read(input);
result.SaveAsTextFile("MultiLanguage.txt");
}
Imports IronOcr
' Multi-language OCR configuration
Dim ocr As New IronTesseract()
' Set primary language
ocr.Language = OcrLanguage.ChineseSimplified
' Add secondary languages as needed
ocr.AddSecondaryLanguage(OcrLanguage.English)
' Custom .traineddata files can be added for specialized recognition
' ocr.AddSecondaryLanguage("path/to/custom.traineddata")
Using input As New OcrInput()
' Process multi-language document
input.LoadImage("img/MultiLanguage.jpeg")
Dim result = ocr.Read(input)
result.SaveAsTextFile("MultiLanguage.txt")
End Using
Birden Çok Sayfalı Belgeleri C# OCR ile Nasıl İşlenir?
IronOCR, birden fazla sayfayı veya resmi kesintisiz bir şekilde tek bir OcrResult olarak birleştirir. Bu özellik, arama yapılabilir PDF'ler oluşturma ve tüm belge setlerinden metin çıkarma gibi güçlü yetenekler sağlar.
Farklı kaynakları karıştırın ve eşleştirin - resimler, TIFF kareleri ve PDF sayfaları - tek bir OCR işleminde:
// Multi-source document processing
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Add various image formats
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Process specific frames from multi-frame images
int[] frameNumbers = { 1, 2 };
input.LoadImageFrames("image3.gif", frameNumbers);
// Process all sources together
OcrResult result = ocr.Read(input);
// Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
// Multi-source document processing
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Add various image formats
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Process specific frames from multi-frame images
int[] frameNumbers = { 1, 2 };
input.LoadImageFrames("image3.gif", frameNumbers);
// Process all sources together
OcrResult result = ocr.Read(input);
// Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.");
}
Imports IronOcr
' Multi-source document processing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Add various image formats
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
' Process specific frames from multi-frame images
Dim frameNumbers As Integer() = {1, 2}
input.LoadImageFrames("image3.gif", frameNumbers)
' Process all sources together
Dim result As OcrResult = ocr.Read(input)
' Verify page count
Console.WriteLine($"{result.Pages.Count} Pages processed.")
End Using
Bir TIFF dosyasının tüm sayfalarını etkili bir şekilde işleyin:
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Define pages to process (0-based indexing)
int[] pageIndices = new int[] { 0, 1 };
// Load specific TIFF frames
input.LoadImageFrames("MultiFrame.Tiff", pageIndices);
// Extract text from all frames
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"{result.Pages.Count} Pages processed");
}
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Define pages to process (0-based indexing)
int[] pageIndices = new int[] { 0, 1 };
// Load specific TIFF frames
input.LoadImageFrames("MultiFrame.Tiff", pageIndices);
// Extract text from all frames
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.WriteLine($"{result.Pages.Count} Pages processed");
}
Imports IronOcr
Private ocr As New IronTesseract()
Using input As New OcrInput()
' Define pages to process (0-based indexing)
Dim pageIndices() As Integer = { 0, 1 }
' Load specific TIFF frames
input.LoadImageFrames("MultiFrame.Tiff", pageIndices)
' Extract text from all frames
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Console.WriteLine($"{result.Pages.Count} Pages processed")
End Using
TIFF veya PDF'leri arama yapılabilir formatlara dönüştürün:
using System;
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Set document metadata
input.Title = "Quarterly Report";
// Combine multiple sources
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Add specific frames from animated images
int[] gifFrames = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", gifFrames);
// Create searchable PDF
OcrResult result = ocr.Read(input);
// Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", true);
}
using System;
using IronOcr;
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
// Set document metadata
input.Title = "Quarterly Report";
// Combine multiple sources
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
// Add specific frames from animated images
int[] gifFrames = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", gifFrames);
// Create searchable PDF
OcrResult result = ocr.Read(input);
// Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", true);
}
Imports System
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Set document metadata
input.Title = "Quarterly Report"
' Combine multiple sources
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
' Add specific frames from animated images
Dim gifFrames As Integer() = {1, 2}
input.LoadImageFrames("image3.gif", gifFrames)
' Create searchable PDF
Dim result As OcrResult = ocr.Read(input)
' Pass true to apply any active OcrInput filters to the searchable PDF output (added v2025.5.11)
result.SaveAsSearchablePdf("searchable.pdf", True)
End Using
Mevcut PDF'leri arama yapılabilir versiyonlara dönüştürün:
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set PDF metadata
input.Title = "Annual Report 2024";
// Process existing PDF
input.LoadPdf("example.pdf", "password");
// Generate searchable version
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set PDF metadata
input.Title = "Annual Report 2024";
// Process existing PDF
input.LoadPdf("example.pdf", "password");
// Generate searchable version
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
' Set PDF metadata
input.Title = "Annual Report 2024"
' Process existing PDF
input.LoadPdf("example.pdf", "password")
' Generate searchable version
Dim result = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
End Using
Aynı tekniği TIFF dönüşümleri için uygulayın:
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Configure document properties
input.Title = "Scanned Archive Document";
// Select pages to process
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Create searchable PDF from TIFF
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Configure document properties
input.Title = "Scanned Archive Document";
// Select pages to process
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Create searchable PDF from TIFF
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
' Configure document properties
input.Title = "Scanned Archive Document"
' Select pages to process
Dim pageIndices = New Integer() { 1, 2 }
input.LoadImageFrames("example.tiff", pageIndices)
' Create searchable PDF from TIFF
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
End Using
OCR Sonuçlarını HOCR HTML Olarak Nasıl Dışa Aktarılır?
IronOCR, yapılandırılmış PDF to HTML ve TIFF to HTML dönüşümlerini, düzen bilgilerini koruyarak mümkün kılan HOCR HTML dışa aktarma desteği sağlar:
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set HTML title
input.Title = "Document Archive";
// Process multiple document types
input.LoadImage("image2.jpeg");
input.LoadPdf("example.pdf", "password");
// Add TIFF pages
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Export as HOCR with position data
OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("hocr.html");
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Set HTML title
input.Title = "Document Archive";
// Process multiple document types
input.LoadImage("image2.jpeg");
input.LoadPdf("example.pdf", "password");
// Add TIFF pages
var pageIndices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageIndices);
// Export as HOCR with position data
OcrResult result = ocr.Read(input);
result.SaveAsHocrFile("hocr.html");
}
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Set HTML title
input.Title = "Document Archive"
' Process multiple document types
input.LoadImage("image2.jpeg")
input.LoadPdf("example.pdf", "password")
' Add TIFF pages
Dim pageIndices As Integer() = {1, 2}
input.LoadImageFrames("example.tiff", pageIndices)
' Export as HOCR with position data
Dim result As OcrResult = ocr.Read(input)
result.SaveAsHocrFile("hocr.html")
End Using
IronOCR Metni Okurken Barkodları da Okuyabilir mi?
IronOCR, barkod okuma yetenekleri ile metin tanımayı benzersiz bir şekilde birleştirir, ayrı kütüphanelere olan ihtiyaçı ortadan kaldırır:
// Enable combined text and barcode recognition
using IronOcr;
var ocr = new IronTesseract();
// Enable barcode detection
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Load image containing both text and barcodes
input.LoadImage("img/Barcode.png");
// Process both text and barcodes
var result = ocr.Read(input);
// Extract barcode data
foreach (var barcode in result.Barcodes)
{
Console.WriteLine($"Barcode Value: {barcode.Value}");
Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}");
}
}
// Enable combined text and barcode recognition
using IronOcr;
var ocr = new IronTesseract();
// Enable barcode detection
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Load image containing both text and barcodes
input.LoadImage("img/Barcode.png");
// Process both text and barcodes
var result = ocr.Read(input);
// Extract barcode data
foreach (var barcode in result.Barcodes)
{
Console.WriteLine($"Barcode Value: {barcode.Value}");
Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}");
}
}
Imports IronOcr
Dim ocr As New IronTesseract()
' Enable barcode detection
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
' Load image containing both text and barcodes
input.LoadImage("img/Barcode.png")
' Process both text and barcodes
Dim result = ocr.Read(input)
' Extract barcode data
For Each barcode In result.Barcodes
Console.WriteLine($"Barcode Value: {barcode.Value}")
Console.WriteLine($"Type: {barcode.Type}, Location: {barcode.Location}")
Next
End Using
Ayrıntılı OCR Sonuçlarına ve Metadatalara Nasıl Erişilir?
IronOCR sonuç nesnesi, ileri düzey geliştiricilerin karmaşık uygulamalar için yararlanabileceği kapsamlı veriler sağlar.
Her OcrResult hiyerarşik koleksiyonlar içerir: sayfalar, paragraflar, satırlar, kelimeler ve karakterler. Tüm öğeler, konum, yazı tipi bilgileri ve güven skoru gibi ayrıntılı metadatalar içerir.
Bireysel öğeler (paragraflar, kelimeler, barkodlar), daha fazla işleme için resim veya bitmap olarak dışa aktarılabilir:
using System;
using IronOcr;
using IronSoftware.Drawing;
// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
Configuration = { ReadBarCodes = true }
};
using OcrInput input = new OcrInput();
// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
OcrResult result = ocr.Read(input);
// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
// Page-level data
int pageNumber = page.PageNumber;
string pageText = page.Text;
int pageWordCount = page.WordCount;
// Extract page elements
OcrResult.Barcode[] barcodes = page.Barcodes;
AnyBitmap pageImage = page.ToBitmap();
double pageWidth = page.Width;
double pageHeight = page.Height;
foreach (var paragraph in page.Paragraphs)
{
// Paragraph properties
int paragraphNumber = paragraph.ParagraphNumber;
string paragraphText = paragraph.Text;
double paragraphConfidence = paragraph.Confidence;
var textDirection = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Line details including baseline information
string lineText = line.Text;
double lineConfidence = line.Confidence;
double baselineAngle = line.BaselineAngle;
double baselineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Word-level data
string wordText = word.Text;
double wordConfidence = word.Confidence;
// Font information (when available)
if (word.Font != null)
{
string fontName = word.Font.FontName;
double fontSize = word.Font.FontSize;
bool isBold = word.Font.IsBold;
bool isItalic = word.Font.IsItalic;
}
foreach (var character in word.Characters)
{
// Character-level analysis
string charText = character.Text;
double charConfidence = character.Confidence;
// Alternative character choices for spell-checking
OcrResult.Choice[] alternatives = character.Choices;
}
}
}
}
}
using System;
using IronOcr;
using IronSoftware.Drawing;
// Configure with barcode support
IronTesseract ocr = new IronTesseract
{
Configuration = { ReadBarCodes = true }
};
using OcrInput input = new OcrInput();
// Process multi-page document
int[] pageIndices = { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageIndices);
OcrResult result = ocr.Read(input);
// Navigate the complete results hierarchy
foreach (var page in result.Pages)
{
// Page-level data
int pageNumber = page.PageNumber;
string pageText = page.Text;
int pageWordCount = page.WordCount;
// Extract page elements
OcrResult.Barcode[] barcodes = page.Barcodes;
AnyBitmap pageImage = page.ToBitmap();
double pageWidth = page.Width;
double pageHeight = page.Height;
foreach (var paragraph in page.Paragraphs)
{
// Paragraph properties
int paragraphNumber = paragraph.ParagraphNumber;
string paragraphText = paragraph.Text;
double paragraphConfidence = paragraph.Confidence;
var textDirection = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Line details including baseline information
string lineText = line.Text;
double lineConfidence = line.Confidence;
double baselineAngle = line.BaselineAngle;
double baselineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Word-level data
string wordText = word.Text;
double wordConfidence = word.Confidence;
// Font information (when available)
if (word.Font != null)
{
string fontName = word.Font.FontName;
double fontSize = word.Font.FontSize;
bool isBold = word.Font.IsBold;
bool isItalic = word.Font.IsItalic;
}
foreach (var character in word.Characters)
{
// Character-level analysis
string charText = character.Text;
double charConfidence = character.Confidence;
// Alternative character choices for spell-checking
OcrResult.Choice[] alternatives = character.Choices;
}
}
}
}
}
Imports System
Imports IronOcr
Imports IronSoftware.Drawing
' Configure with barcode support
Private ocr As New IronTesseract With {
.Configuration = { ReadBarCodes = True }
}
Private OcrInput As using
' Process multi-page document
Private pageIndices() As Integer = { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageIndices)
Dim result As OcrResult = ocr.Read(input)
' Navigate the complete results hierarchy
For Each page In result.Pages
' Page-level data
Dim pageNumber As Integer = page.PageNumber
Dim pageText As String = page.Text
Dim pageWordCount As Integer = page.WordCount
' Extract page elements
Dim barcodes() As OcrResult.Barcode = page.Barcodes
Dim pageImage As AnyBitmap = page.ToBitmap()
Dim pageWidth As Double = page.Width
Dim pageHeight As Double = page.Height
For Each paragraph In page.Paragraphs
' Paragraph properties
Dim paragraphNumber As Integer = paragraph.ParagraphNumber
Dim paragraphText As String = paragraph.Text
Dim paragraphConfidence As Double = paragraph.Confidence
Dim textDirection = paragraph.TextDirection
For Each line In paragraph.Lines
' Line details including baseline information
Dim lineText As String = line.Text
Dim lineConfidence As Double = line.Confidence
Dim baselineAngle As Double = line.BaselineAngle
Dim baselineOffset As Double = line.BaselineOffset
For Each word In line.Words
' Word-level data
Dim wordText As String = word.Text
Dim wordConfidence As Double = word.Confidence
' Font information (when available)
If word.Font IsNot Nothing Then
Dim fontName As String = word.Font.FontName
Dim fontSize As Double = word.Font.FontSize
Dim isBold As Boolean = word.Font.IsBold
Dim isItalic As Boolean = word.Font.IsItalic
End If
For Each character In word.Characters
' Character-level analysis
Dim charText As String = character.Text
Dim charConfidence As Double = character.Confidence
' Alternative character choices for spell-checking
Dim alternatives() As OcrResult.Choice = character.Choices
Next character
Next word
Next line
Next paragraph
Next page
Özet
IronOCR, Windows, Linux ve Mac platformlarında kesintisiz çalışan Tesseract API uygulaması ile C# geliştiricilerine en gelişmiş çözümleri sunar. IronOCR'un, imkansız belgelerde bile metni doğru okumaktaki yeteneği, onu temel OCR çözümlerinden ayırır.
Kütüphanenin benzersiz özellikleri arasında entegre barkod okuma ve sonuçları arama yapılabilir PDF'ler veya HOCR HTML olarak dışa aktarma yeteneği yer alır, bu yetenekler standart Tesseract uygulamalarında mevcut değildir.
İleriye Bakış
IronOCR konusunda ustalaşmaya devam etmek için:
- kapsamlı başvuru kılavuzumuz ile başlayın
- pratik C# kod örnekleri göz atın
- detaylı API dokümantasyonuna başvurun
Kaynak Kod İndir
Uygulamalarınızda C# OCR resimden metin dönüşümü uygulamaya hazır mısınız? IronOCR İndir ve bugün ücretsiz denemeye başlayın.
Sıkça Sorulan Sorular
Görüntüleri Tesseract kullanmadan C#'da metne nasıl dönüştürebilirim?
IronOCR'u kullanarak Tesseract'a ihtiyaç duymadan görüntüleri C#'da metne dönüştürebilirsiniz. IronOCR, doğrudan metin dönüştürme işlemi yapan yerleşik yöntemler ile süreci basitleştirir.
Düşük kaliteli görüntülerde OCR doğruluğunu nasıl artırabilirim?
IronOCR, eğim düzeltme ve gürültü azaltma yaparak düşük kaliteli görüntüleri iyileştirmek için Input.Deskew() ve Input.DeNoise() gibi görüntü filtreleri sunar, böylece OCR doğruluğunu önemli ölçüde artırır.
C#'da çok sayfalı bir belgeden metin çıkarmak için adımlar nelerdir?
Çok sayfalı belgelerden metin çıkarmak için IronOCR, her sayfayı PDF'ler için LoadPdf() gibi yöntemlerle yüklemenize ve işlem yapmanıza olanak tanır veya TIFF dosyalarını işleyerek her sayfayı etkin bir şekilde metne dönüştürür.
Bir görüntüden aynı anda barkodlar ve metin okuyabilir miyim?
Evet, IronOCR tek bir görüntüden hem metin hem de barkod okuyabilir. Barkod okumasını ocr.Configuration.ReadBarCodes = true ile etkinleştirebilir ve hem metin hem de barkod verilerini çıkarabilirsiniz.
Birden fazla dilde belgeleri işlemek için OCR'ı nasıl ayarlayabilirim?
IronOCR, 125'ten fazla dili destekler ve birincil dili ocr.Language özelliği ile ayarlamanıza ve çok dilli belge işleme için ek diller ocr.AddSecondaryLanguage() ile eklemenize olanak tanır.
Farklı formatlarda OCR sonuçlarını dışa aktarmak için hangi yöntemler mevcut?
IronOCR, OCR sonuçlarını dışa aktarmak için SaveAsSearchablePdf() ile PDF'ler, SaveAsTextFile() ile düz metin ve SaveAsHocrFile() ile HOCR HTML formatı gibi çeşitli yöntemler sunar.
Büyük resim dosyaları için OCR işlem hızını nasıl optimize edebilirim?
OCR işlem hızını optimize etmek için, daha hızlı dil tanıma için IronOCR'un OcrLanguage.EnglishFast dilini kullanın ve işlem süresini azaltmak için System.Drawing.Rectangle kullanarak OCR için belirli bölgeler tanımlayın.
Korunan PDF dosyaları için OCR işleme nasıl yapılır?
Korunan PDF'lerle uğraşırken, doğru parola ile birlikte LoadPdf() yöntemini kullanın. IronOCR, OCR işleme için görüntü tabanlı PDF'leri otomatik olarak görüntülere dönüştürür.
OCR sonuçları doğru değilse ne yapmalıyım?
OCR sonuçları doğru değilse, IronOCR'un Input.Deskew() ve Input.DeNoise() gibi görüntü iyileştirme özelliklerini kullanmayı ve doğru dil paketlerinin yüklü olduğundan emin olun.
OCR işlemini belirli karakterleri dışlamak için özelleştirebilir miyim?
Evet, IronOCR, belirli karakterleri hariç tutmak için BlackListCharacters özelliğini kullanarak OCR işlemini özelleştirmenize olanak tanır, böylece yalnızca ilgili metne odaklanarak doğruluğu ve işlem hızını artırır.

