IronOCR ile C#'ta Metinleri Görüntü Olarak Vurgulama

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR'un HighlightTextAndSaveAsImages metodu, tespit edilen metin (karakterler, kelimeler, satırlar veya paragraflar) etrafına kenarlık kutuları çizerek OCR sonuçlarını görselleştirir ve bunları tanı görüntüler olarak kaydeder, bu sayede geliştiriciler OCR doğruluğunu doğrulayıp tanıma sorunlarını hatasız hale getirebilir.

OCR sonuçlarını görüntülemek, motorun bir görüntüde tespit ettiği belirli metin öğelerinin etrafına çerçeve yerleştirmeyi içerir. Bu süreç, tanınan içeriğin net bir haritasını sağlayarak bireysel karakterlerin, kelimelerin, satırların veya paragrafların tam konumlarını gösteren ayırt edici vurgular ekler.

Bu görsel geri bildirim, yazılımın neleri tanıdığını ve nerede hatalar yaptığını göstererek OCR çıkış doğruluğu için kritik önemdedir. Karmaşık belgelerle çalışırken veya tanıma sorunlarını giderirken, görüntü vurgulama önemli bir teşhis aracına dönüşür.

Bu makale, IronOCR'un tanılama yeteneklerini HighlightTextAndSaveAsImages metodu ile göstermektedir. Bu işlev, metnin belirli bölümlerini vurgulayıp doğrulama için görüntü olarak kaydeder. Bir belge işleme sistemi inşa ederken, kalite kontrol önlemlerini uygularken veya OCR uygulamanızı doğrularken, bu özellik OCR motorunun neyi tespit ettiği hakkında anında görsel geri bildirim sağlar.

Çabuk Başlangıç: PDF'inizdeki Kelimeleri Anında Vurgulayın

Bu snippet IronOCR kullanimini demonstre eder: bir PDF yukleyin ve belge icerisindeki her kelimeyi vurgulayi, sonucu görüntü olarak kaydedin. OCR sonuclarinin visual geri bildirimini almak icin sadece bir satir yeterli.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçasını kopyalayıp çalıştırın.

    new IronOcr.OcrInput().LoadPdf("document.pdf").HighlightTextAndSaveAsImages(new IronOcr.IronTesseract(), "highlight_page_", IronOcr.ResultHighlightType.Word);
  3. Canlı ortamınızda test etmek için dağıtın

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

    arrow pointer

Metni Nasıl Vurgular ve Görüntü Olarak Kaydederim?

IronOCR ile metni vurgulama ve görüntü olarak kaydetme işlemi basittir. Var olan bir PDF'yi LoadPdf ile yükleyin, ardından HighlightTextAndSaveAsImages metodunu çağırın ve metin bölümlerini vurgulayarak bunları resim olarak kaydedin. Bu teknik, OCR doğruluğunu test eder ve belgelerinizdeki metin tanıma sorunlarını giderir.

Metod üç parametre alır: IronTesseract OCR motoru, çıktının dosya adı için bir ön ek ve vurgulanacak metin türünü belirleyen ResultHighlightType'dan bir enum. Bu örnek, metin bloklarını paragraflar olarak vurgulamak için ResultHighlightType.Paragraph kullanır.

Bu işlev, çıktı dize önekini kullanır ve her sayfa için çıktı görüntü dosya adına bir sayfa tanımlayıcı (örneğin, "page_0", "page_1") ekler.

Bu örnek, üç paragraflık bir PDF kullanır.

Giris PDF'i Neye Benziyor?

Vurgulama Kodunu Nasıl Uygularım?

Aşağıdaki örnek kod, OcrInput sınıfı kullanarak temel bir uygulamayı göstermektedir.

:path=/static-assets/ocr/content-code-examples/how-to/highlight-texts-as-images.cs
using IronOcr;

IronTesseract ocrTesseract = new IronTesseract();

using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_page_", ResultHighlightType.Paragraph);
Imports IronOcr

Private ocrTesseract As New IronTesseract()

Private ocrInput = New OcrInput()
ocrInput.LoadPdf("document.pdf")
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_page_", ResultHighlightType.Paragraph)
$vbLabelText   $csharpLabel

Çıktı Görüntüleri Ne Gösterir?

Uc paragraflik web sayfasi, ortadaki paragraf kirmizi kenarlikli olarak vurgulanarak metin secimi ozelligi gösterilmektedir

Yukarıdaki çıktı görüntüsünde görüldüğü gibi, üç paragraf da açık kırmızı kutularla vurgulanmıştır. Bu görsel temsil, geliştiricilere OCR motorunun belgedeki blokları nasıl okunabilir kısımlar halinde parçaladığını hızla anlamalarına yardımcı olur.

Farkli ResultHighlightType Seçenekleri Nelerdir?

Yukarıdaki örnek, metin bloklarını vurgulamak için ResultHighlightType.Paragraph kullanmıştır. IronOCR bu enum üzerinden ek vurgulama seçenekleri sunar. Farklı teşhis amaçlarına hizmet eden mevcut türlerin tam listesi aşağıdadır.

Karakter: OCR motoru tarafından tespit edilen her bir karakterin etrafına çerçeve çizer. Özellikle özel dil dosyaları ile çalışırken karakter tanıma veya özelleşmiş yazı tipleri için hata ayıklama amacıyla kullanışlıdır.

Kelime: Motor tarafından tespit edilen her tam kelimeyi vurgular. Kelime sınırlarını doğrulamak ve uygun kelime tanımlaması için idealdir, özellikle barkod ve QR okuma ile birlikte metin tanıma uygulandığında.

Satır: Tespit edilen her metin satırını vurgular. Taranmış belgeler işlenirken satır tespit doğrulaması gerektiren karmaşık düzenlere sahip belgeler için kullanışlıdır.

Paragraf: Paragraflar olarak gruplanmış tüm metin bloklarını vurgular. Belge düzenini anlamak ve metin bloğunu doğrulamak için mükemmeldir, özellikle tablo çıkartma ile çalışırken kullanışlıdır.

Farklı Vurgulama Türleri Nasıl Kıyaslarım?

Bu kapsamlı örnek, aynı belgede tüm farklı türler için vurguları üreterek sonuçları karşılaştırmanıza olanak tanır:

using IronOcr;
using System;

// Initialize the OCR engine with custom configuration
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy if needed
ocrTesseract.Configuration.ReadBarCodes = false; // Disable if not needed for performance
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the PDF document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");

// Generate highlights for each type
Console.WriteLine("Generating character-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_character_", ResultHighlightType.Character);

Console.WriteLine("Generating word-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_word_", ResultHighlightType.Word);

Console.WriteLine("Generating line-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_line_", ResultHighlightType.Line);

Console.WriteLine("Generating paragraph-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_paragraph_", ResultHighlightType.Paragraph);

Console.WriteLine("All highlight images have been generated successfully!");
using IronOcr;
using System;

// Initialize the OCR engine with custom configuration
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy if needed
ocrTesseract.Configuration.ReadBarCodes = false; // Disable if not needed for performance
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the PDF document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("document.pdf");

// Generate highlights for each type
Console.WriteLine("Generating character-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_character_", ResultHighlightType.Character);

Console.WriteLine("Generating word-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_word_", ResultHighlightType.Word);

Console.WriteLine("Generating line-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_line_", ResultHighlightType.Line);

Console.WriteLine("Generating paragraph-level highlights...");
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_paragraph_", ResultHighlightType.Paragraph);

Console.WriteLine("All highlight images have been generated successfully!");
Imports IronOcr
Imports System

' Initialize the OCR engine with custom configuration
Dim ocrTesseract As New IronTesseract()

' Configure for better accuracy if needed
ocrTesseract.Configuration.ReadBarCodes = False ' Disable if not needed for performance
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Load the PDF document
Using ocrInput As New OcrInput()
    ocrInput.LoadPdf("document.pdf")

    ' Generate highlights for each type
    Console.WriteLine("Generating character-level highlights...")
    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_character_", ResultHighlightType.Character)

    Console.WriteLine("Generating word-level highlights...")
    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_word_", ResultHighlightType.Word)

    Console.WriteLine("Generating line-level highlights...")
    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_line_", ResultHighlightType.Line)

    Console.WriteLine("Generating paragraph-level highlights...")
    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_paragraph_", ResultHighlightType.Paragraph)
End Using

Console.WriteLine("All highlight images have been generated successfully!")
$vbLabelText   $csharpLabel

Çok Sayfalı Belgeleri Nasıl Ele Alırım?

Çok sayfalı PDF'ler veya çok kareli TIFF dosyaları işlenirken, vurgulama özelliği her sayfayı otomatik olarak bireysel ele alır. Bu özellikle, PDF OCR metin çıkarma iş akışlarını uygularsanız kullanışlıdır:

using IronOcr;
using System.IO;

IronTesseract ocrTesseract = new IronTesseract();

// Load a multi-page document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("multi-page-document.pdf");

// Create output directory if it doesn't exist
string outputDir = "highlighted_pages";
Directory.CreateDirectory(outputDir);

// Generate highlights for each page
// Files will be named: highlighted_pages/page_0.png, page_1.png, etc.
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, 
    Path.Combine(outputDir, "page_"), 
    ResultHighlightType.Word);

// Count generated files for verification
int pageCount = Directory.GetFiles(outputDir, "page_*.png").Length;
Console.WriteLine($"Generated {pageCount} highlighted page images");
using IronOcr;
using System.IO;

IronTesseract ocrTesseract = new IronTesseract();

// Load a multi-page document
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("multi-page-document.pdf");

// Create output directory if it doesn't exist
string outputDir = "highlighted_pages";
Directory.CreateDirectory(outputDir);

// Generate highlights for each page
// Files will be named: highlighted_pages/page_0.png, page_1.png, etc.
ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, 
    Path.Combine(outputDir, "page_"), 
    ResultHighlightType.Word);

// Count generated files for verification
int pageCount = Directory.GetFiles(outputDir, "page_*.png").Length;
Console.WriteLine($"Generated {pageCount} highlighted page images");
Imports IronOcr
Imports System.IO

Dim ocrTesseract As New IronTesseract()

' Load a multi-page document
Using ocrInput As New OcrInput()
    ocrInput.LoadPdf("multi-page-document.pdf")

    ' Create output directory if it doesn't exist
    Dim outputDir As String = "highlighted_pages"
    Directory.CreateDirectory(outputDir)

    ' Generate highlights for each page
    ' Files will be named: highlighted_pages/page_0.png, page_1.png, etc.
    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, 
                                          Path.Combine(outputDir, "page_"), 
                                          ResultHighlightType.Word)

    ' Count generated files for verification
    Dim pageCount As Integer = Directory.GetFiles(outputDir, "page_*.png").Length
    Console.WriteLine($"Generated {pageCount} highlighted page images")
End Using
$vbLabelText   $csharpLabel

Performans İçin En İyi Uygulamalar Nelerdir?

Vurgulama özelliğini kullanırken, şu en iyi uygulamaları dikkate alın:

  1. Dosya Boyutu: Vurgulanan görüntüler büyük olabilir, özellikle yüksek çözünürlüklü belgelerde. Büyük partileri işlerken, çıktı dizinindeki boş alanı dikkate alın. Optimize etme ipuçları için hızlı OCR yapılandırma rehberimize bakın.

  2. Performans: Vurgulamalar oluşturmak işleme yükü ekler. Vurgulamaları yalnızca gerekli olduğu durumlarda tüm üretim sistemlerinde uygulamak yerine ayrı bir teşhis süreci olarak ele alın. Toplu işlem için çoklu iş parçacıklı OCR kullanmayı düşünün.

  3. Hata Yönetimi: Dosya işlemleriyle çalışırken her zaman düzgün hata yönetimini uygulayın:
try
{
    using var ocrInput = new OcrInput();
    ocrInput.LoadPdf("document.pdf");

    // Apply image filters if needed for better recognition
    ocrInput.Deskew(); // Correct slight rotations
    ocrInput.DeNoise(); // Remove background noise

    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_", ResultHighlightType.Word);
}
catch (Exception ex)
{
    Console.WriteLine($"Error during highlighting: {ex.Message}");
    // Log error details for debugging
}
try
{
    using var ocrInput = new OcrInput();
    ocrInput.LoadPdf("document.pdf");

    // Apply image filters if needed for better recognition
    ocrInput.Deskew(); // Correct slight rotations
    ocrInput.DeNoise(); // Remove background noise

    ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_", ResultHighlightType.Word);
}
catch (Exception ex)
{
    Console.WriteLine($"Error during highlighting: {ex.Message}");
    // Log error details for debugging
}
Imports System

Try
    Using ocrInput As New OcrInput()
        ocrInput.LoadPdf("document.pdf")

        ' Apply image filters if needed for better recognition
        ocrInput.Deskew() ' Correct slight rotations
        ocrInput.DeNoise() ' Remove background noise

        ocrInput.HighlightTextAndSaveAsImages(ocrTesseract, "highlight_", ResultHighlightType.Word)
    End Using
Catch ex As Exception
    Console.WriteLine($"Error during highlighting: {ex.Message}")
    ' Log error details for debugging
End Try
$vbLabelText   $csharpLabel

Vurgulama OCR Sonuçlarıyla Nasıl Bütünleşir?

Vurgulama özelliği, IronOCR'nin sonuç nesneleri ile sorunsuz çalışır; görsel vurgulamaları ayıklanan metin verileriyle ilişkilendirmenize olanak tanır. Bu, tanınan metnin belirli bölümlerinin OCR ilerlemesini takip etmek veya doğrulamak gerektiğinde özellikle yararlıdır. OcrResult sınıfı, tespit edilen her öğe hakkında bu metodun oluşturduğu görsel vurgularla doğrudan ilişkilendirilen ayrıntılı bilgiler sağlar.

Problemlerle Karşılaşırsam Ne Yapmalı?

Vurgulama özelliği ile ilgili problemlerle karşılaşırsanız, genellikle çözümler için genel sorun giderme rehberine başvurun. Belirli vurgulama ile ilgili problemler için:

  • Boş çıktı görüntüleri: Giriş belgelerinin okunabilir metin içerdiğinden ve OCR motorunun belge türünüz için uygun şekilde ayarlanmış olduğundan emin olun. Tanımayı geliştirmek için görüntü optimizasyon filtreleri veya görüntü yönünü düzeltme uygulamanız gerekebilir.
  • Eksik vurgular: Bazı belge türleri belirli ön işleme gerektirebilir. Tanımayı iyileştirmek için görüntü filtreleri veya görüntü yönünü düzeltme uygulamayı deneyin.
  • Performans sorunları: Büyük belgeler için, işlem hızını artırmak adına çoklu iş parçacığı uygulamayı düşünün. Ayrıca düşük kaliteli girişlerle çalışırken düşük kaliteli taramaları düzeltme rehberimize göz atın.

Bunu Üretim Hata Ayıklamada Nasıl Kullanabilirim?

Vurgulama özelliği, mükemmel bir üretim hata ayıklama aracı olarak hizmet eder. Uzun süreli işlemler için iptal belirteçleri ve zaman aşımları ile entegre edildiğinde, güçlü bir teşhis sistemi oluşturabilirsiniz. Uygulamanızda bir hata ayıklama modu uygulamayı düşünün:

public class OcrDebugger
{
    private readonly IronTesseract _tesseract;
    private readonly bool _debugMode;

    public OcrDebugger(bool enableDebugMode = false)
    {
        _tesseract = new IronTesseract();
        _debugMode = enableDebugMode;
    }

    public OcrResult ProcessDocument(string filePath)
    {
        using var input = new OcrInput();
        input.LoadPdf(filePath);

        // Apply preprocessing
        input.Deskew();
        input.DeNoise();

        // Generate debug highlights if in debug mode
        if (_debugMode)
        {
            string debugPath = $"debug_{Path.GetFileNameWithoutExtension(filePath)}_";
            input.HighlightTextAndSaveAsImages(_tesseract, debugPath, ResultHighlightType.Word);
        }

        // Perform actual OCR
        return _tesseract.Read(input);
    }
}
public class OcrDebugger
{
    private readonly IronTesseract _tesseract;
    private readonly bool _debugMode;

    public OcrDebugger(bool enableDebugMode = false)
    {
        _tesseract = new IronTesseract();
        _debugMode = enableDebugMode;
    }

    public OcrResult ProcessDocument(string filePath)
    {
        using var input = new OcrInput();
        input.LoadPdf(filePath);

        // Apply preprocessing
        input.Deskew();
        input.DeNoise();

        // Generate debug highlights if in debug mode
        if (_debugMode)
        {
            string debugPath = $"debug_{Path.GetFileNameWithoutExtension(filePath)}_";
            input.HighlightTextAndSaveAsImages(_tesseract, debugPath, ResultHighlightType.Word);
        }

        // Perform actual OCR
        return _tesseract.Read(input);
    }
}
Imports System.IO

Public Class OcrDebugger
    Private ReadOnly _tesseract As IronTesseract
    Private ReadOnly _debugMode As Boolean

    Public Sub New(Optional enableDebugMode As Boolean = False)
        _tesseract = New IronTesseract()
        _debugMode = enableDebugMode
    End Sub

    Public Function ProcessDocument(filePath As String) As OcrResult
        Using input As New OcrInput()
            input.LoadPdf(filePath)

            ' Apply preprocessing
            input.Deskew()
            input.DeNoise()

            ' Generate debug highlights if in debug mode
            If _debugMode Then
                Dim debugPath As String = $"debug_{Path.GetFileNameWithoutExtension(filePath)}_"
                input.HighlightTextAndSaveAsImages(_tesseract, debugPath, ResultHighlightType.Word)
            End If

            ' Perform actual OCR
            Return _tesseract.Read(input)
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Sıradaki Adım Nedir?

Vurgulama özelliğini nasıl kullanacağınızı anladığınıza göre, göz atın:

Üretim kullanımı için, filigranları kaldırmak ve tam işlevselliğe erişmek amacıyla bir lisans almayı unutmayın.

Sıkça Sorulan Sorular

C# uygulamamda OCR sonuclarini nasil görüntüleyebilirim?

IronOCR, OCR sonuclarini algilanan metin elemanlarinin (karakterler, kelimeler, satirlar veya paragraflar) etrafinda sinir kutulari cizerek görüntülendiren ve tani resimleri olarak kaydeden HighlightTextAndSaveAsImages metodunu saglar. Bu özellik, geliştiricilerin OCR doğrulugunu onaylamasina ve tani sorunlarini gidermesine yardimci olur.

Bir PDF belgesinde kelimeleri vurgulamanin en basit yolu nedir?

IronOCR ile, sonuc Hard kodu icinde satira hali olarak: new IronOcr.OcrInput().LoadPdf("document.pdf").HighlightTextAndSaveAsImages(new IronOcr.IronTesseract(), "highlight_page_", IronOcr.ResultHighlightType.Word). Bu PDF'yi yukler ve vurgulanmis kelimelerle birlikte resimler oluşturur.

HighlightTextAndSaveAsImages metodu hangi parametreleri gerektirir?

IronOCR icinde HighlightTextAndSaveAsImages metodu uc parametre gerektirir: IronTesseract OCR motoru ornegi, cikti dosya adi için bir on ek metin dizisi ve hangi metin ogelerinin vurgulanacagini (Karakter, Kelime, Satir veya Paragraf) belirten bir ResultHighlightType enum degeri.

Metin vurgulama kullanildiginda cikti resimlerinin isimleri nasil belirlenir?

IronOCR, kullandiginiz on eki bir sayfa kimligiyle birlestirerek cikti resimlerini otomatik olarak adlandirir. Ornegin, "highlight_page_" on ekini kullanirsaniz, metod belgenizdeki her sayfa için "highlight_page_0", "highlight_page_1" vb. adli dosyalar oluşturur.

Görsel vurgulama, OCR geliştirmede neden önemlidir?

IronOCR'da görsel vurgulama, OCR motorunun algiladigi metni ve potansiyel hatalarin nerede oldugunu göstererek kritik tani geribildirimi sunar. Bu görsel harita, geliştiricilerin tanima sorunlarini gidermesine, OCR doğrulugunu doğrulamasina ve karmaşık belgelerde sorun gidermesine yardimci olur.

Kelimeler disinda farkli metin ogelerini vurgulayabilir miyim?

Evet, IronOCR'nin ResultHighlightType enum'u, bireysel Karakterler, Kelimeler, Satirlar veya tüm Paragraflar dahil olmak uzere çeşitli metin ogelerini vurgulamaniza olanak tanir. Farklı metin algılama seviyelerini görselleştirmek için HighlightTextAndSaveAsImages metodunu çağırırken arzu edilen türü belirtin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.