Sonuçları Bir HTML Dosyasında hOCR Olarak Kaydetme | IronOCR

IronOCR ile C#'da OCR Sonuçlarını hOCR HTML Olarak Kaydetme

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

IronOCR, geliştiricilerin OCR sonuçlarını hOCR HTML dosyaları olarak kaydetmelerini sağlamak için RenderHocr'i true olarak ayarlar ve SaveAsHocrFile veya SaveAsHocrString yöntemlerini kullanarak, metin düzenini ve karakter koordinatlarını yapılandırılmış HTML formatında korur.

Çabuk Başlangıç: OCR Çıkışını hOCR HTML Dosyası olarak Kaydet

hOCR işlemeyi etkinleştirin ve direkt HTML dosyasına sonuçları bir ayar ve bir metod çağrısı ile dışa aktarın.

  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.

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  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


hOCR Nedir ve Neden Kullanılır?

"HTML tabanlı OCR" anlamına gelen hOCR, Optik Karakter Tanıma (OCR) sonuçlarını yapısal bir şekilde temsil etmek için kullanılan bir dosya formatıdır. hOCR dosyaları HTML ile yazılır ve tanımlı metni, düzen bilgilerini ve her tespit edilen karakterin bir görüntü veya belge içindeki koordinatlarını saklama yolu sağlar. Bu yapısal format, belge indeksleme, erişilebilirlik araçları ve ileri arama uygulamalarını gerektiren uygulamalar için hOCR'yi özellikle değerli kılar.

hOCR formatı, geliştiricilerin bir belgede hangi metnin nerede olduğunu anlaması gereken uygulamalar kurarken hayati önem taşır. Böylesi konumsal bilgiler, hata ayıklama için metin vurgulama, orijinal görüntülerde tıklanabilir kaplamalar oluşturma, taranmış belgeleri erişilebilir formatlara dönüştürme sırasında belge düzeni bütünlüğünü koruma gibi özellikler sağlar. Taranmış belgeleri işlerken hOCR, gelişmiş belge anlama ve çıkarma iş akışlarının temellerini sağlar.

OCR Sonuçlarını hOCR Dosyaları Olarak Nasıl Dışa Aktarırım?

Sonucu hOCR olarak dışa aktarmak için, önce Configuration.RenderHocr özelliğini true olarak ayarlayarak etkinleştirin. Read yönteminden OcrResult nesnesini aldıktan sonra, OCR sonucunu HTML olarak dışa aktarmak için SaveAsHocrFile yöntemini kullanın. Bu yöntem, girdi belgelerinin okuma sonucunu içeren bir HTML dosyası üretir. Aşağıdaki kod, örnek TIFF dosyasını kullanan bir örnek gösterir.

:path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = true;

// Add image
using var imageInput = new OcrImageInput("Potter.tiff");
imageInput.Title = "Html Title";

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Export as HTML
ocrResult.SaveAsHocrFile("result.html");
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = True

' Add image
Dim imageInput = New OcrImageInput("Potter.tiff")
imageInput.Title = "Html Title"

' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Export as HTML
ocrResult.SaveAsHocrFile("result.html")
$vbLabelText   $csharpLabel

OcrInput sınıfı, OCR işlemi öncesinde resimleri hazırlamak için geniş seçenekler sunar. Filtreler uygulayabilir, ilgi alanlarını belirleyebilir ve çok sayfalı TIFF dosyaları dahil olmak üzere çeşitli girdi formatlarını işleyebilirsiniz. PDF OCR metin çıkarımı ile çalışırken, aynı hOCR dışa aktarma yöntemleri sorunsuz bir şekilde uygulanır.

RenderHocr Ayarının Önemi Nedir?

RenderHocr özelliğini true olarak ayarlamak, IronOCR'ya OCR işlemi sırasında gerekli hOCR yapısını oluşturmasını talep eder. Bu yapılandırma olmadan, SaveAsHocrFile ve SaveAsHocrString yöntemleri düzen korumalı doğru biçimlendirilmiş hOCR çıktısı üretmeyecektir. Bu yapılandırmanın, Tesseract motorunun çıktıyı nasıl işleyeceğini ve yapılandıracağını etkilediğinden, Read yöntemini çağırmadan önce ayarlanması gerekir.

hOCR formatı, şunlar da dahil olmak üzere önemli metaverileri korur:

  • Karakter seviyesi sınırlayıcı kutular
  • Kelime güven puanları
  • Satır ve paragraf yapısı
  • Sayfa boyutları ve DPI bilgisi
  • Algılanabiliyorsa yazı tipi özellikleri

Bu metadata, bilgisayarlı görü iş akışlarını uygularken veya belge yapısını basit metin çıkarımının ötesine anlaması gereken sistemler oluştururken özellikle faydalıdır.

Hangi Dosya Türleri hOCR Dışa Aktarımını Destekler?

IronOCR, TIFF, PNG, JPEG, BMP ve GIF dahil olmak üzere çeşitli resim formatlarından hOCR dışa aktarmayı destekler. PDF belgeleri de işlenebilir ve her sayfanın metin ve düzen bilgisi HTML yapısında korunarak hOCR olarak dışa aktarılabilir. Kütüphane, tek sayfalı resimleri ve çok sayfalı belgeleri sorunsuz bir şekilde işler.

Farklı dosya türleri ile en iyi sonuçlar için:

  • TIFF: Tarayıcı belgeler için ideal, çok sayfalı işlemeyi destekler
  • PDF: Karışık içerik (metin ve resimler) için mükemmel
  • PNG/JPEG: OCR gerektiren fotoğraflar veya ekran görüntüleri için en iyisi
  • BMP: Yüksek kaliteli taramalar için uygun sıkıştırılmamış format

Pasaportlar veya plaka gibi uzmanlaşmış belge türleriyle çalışırken, hOCR formatı, farklı metin elemanları arasındaki mekansal ilişkiyi korumaya yardımcı olur ve belirli alanları konumlarına göre çıkarmayı kolaylaştırır.

OCR Sonuçlarını HTML Dize Olarak Nasıl Dışa Aktarırım?

Aynı TIFF örnek görüntüsünü kullanarak, OCR sonucunu bir HTML dizesi olarak dışa aktarmak için SaveAsHocrString yöntemini kullanın. Bu yöntem bir HTML dizesi döndürür.

:path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html-string.cs
// Export as HTML string
string hocr = ocrResult.SaveAsHocrString();
' Export as HTML string
Dim hocr As String = ocrResult.SaveAsHocrString()
$vbLabelText   $csharpLabel

Dize çıktısı, daha fazla işlenebilir, veritabanlarında saklanabilir veya web uygulamalarına entegre edilebilecek eksiksiz hOCR işaretleme içerir. Bu yaklaşım, arama yapılabilir PDF sistemleri oluştururken veya özel belge dizinleme çözümleri uygularken özellikle faydalıdır. 125 uluslararası dil ile çalışan geliştiriciler için hOCR formatı, dile özgü metin özelliklerini ve okuma yönü bilgisini korur.

Dize Çıktıyı Dosyalar Yerine Ne Zaman Kullanmalıyım?

Dize çıktı, hOCR verilerini bellekten işlemek veya manipüle etmek, web hizmetleri ile entegre etmek veya sonuçları bir veritabanında saklamak gerektiğinde idealdir. Bu yaklaşım, dosya sistemi bağımlılıklarını ortadan kaldırır ve web uygulamaları için dinamik HTML üretimini sağlar. Yaygın kullanım durumları şunlardır:

  • Web API Entegrasyonu: hOCR verilerini API yanıtlarına doğrudan geri gönderin
  • Veritabanı Depolama: OCR sonuçlarını belge metaverisi ile saklayın
  • Gerçek Zamanlı İşleme: Sonuçları disk I/O yükü olmadan işleyin
  • Bulut Fonksiyonları: Sınırlı dosya erişimine sahip sunucusuz ortamlarda çalışın
  • İçerik Yönetim Sistemleri: OCR sonuçlarını mevcut belge iş akışlarına entegre edin

İlerlemeyi izlemek gereken uygulamalar için, dize çıkışı, kısmi sonuçlar elde edildikçe anında işlemeye imkân tanır. Bu, birden fazla belgenin eşzamanlı olarak işlendiği çok iş parçacıklı OCR işleme uygulandığında özellikle faydalıdır.

Birden Fazla Sayfayı HTML Dizelerine Nasıl İşlerim?

Çok sayfalı belgelerle çalışırken, SaveAsHocrString tüm sayfaları uygun sayfa bölümleriyle tek bir HTML dizesine birleştirir. Her sayfanın içeriği, belge yapısını ve sayfa sınırlarını koruyarak uygun hOCR elemanlarına sarılır.

// Processing multi-page documents
using var multiPageInput = new OcrPdfInput("multi-page-document.pdf");
multiPageInput.Title = "Multi-Page Document";

 // Configure for hOCR output
 IronTesseract tesseract = new IronTesseract();
 tesseract.Configuration.RenderHocr = true;

 // Read all pages
 OcrResult result = tesseract.Read(multiPageInput);

 // Export as single HTML string with all pages
 string fullHocr = result.SaveAsHocrString();

 // Or process page by page
 foreach (var page in result.Pages)
 {
     string pageHocr = page.SaveAsHocrString();
     // Process individual page hOCR
 }
// Processing multi-page documents
using var multiPageInput = new OcrPdfInput("multi-page-document.pdf");
multiPageInput.Title = "Multi-Page Document";

 // Configure for hOCR output
 IronTesseract tesseract = new IronTesseract();
 tesseract.Configuration.RenderHocr = true;

 // Read all pages
 OcrResult result = tesseract.Read(multiPageInput);

 // Export as single HTML string with all pages
 string fullHocr = result.SaveAsHocrString();

 // Or process page by page
 foreach (var page in result.Pages)
 {
     string pageHocr = page.SaveAsHocrString();
     // Process individual page hOCR
 }
Imports IronOcr

' Processing multi-page documents
Using multiPageInput As New OcrPdfInput("multi-page-document.pdf")
    multiPageInput.Title = "Multi-Page Document"

    ' Configure for hOCR output
    Dim tesseract As New IronTesseract()
    tesseract.Configuration.RenderHocr = True

    ' Read all pages
    Dim result As OcrResult = tesseract.Read(multiPageInput)

    ' Export as single HTML string with all pages
    Dim fullHocr As String = result.SaveAsHocrString()

    ' Or process page by page
    For Each page In result.Pages
        Dim pageHocr As String = page.SaveAsHocrString()
        ' Process individual page hOCR
    Next
End Using
$vbLabelText   $csharpLabel

Bu yaklaşım, PDF akışları ile sorunsuz çalışır ve belirli sayfa aralıklarını işleme veya farklı sayfalara farklı OCR yapılandırmaları uygulama gibi gelişmiş senaryoları destekler.

Gelişmiş hOCR Uygulama İpuçları

hOCR Çıktı Kalitesi İçin En İyi Uygulamalar Nelerdir?

hOCR çıktı kalitenizi en üst düzeye çıkarmak için, işlemden önce resim iyileştirme filtreleri uygulamayı düşünün:

var input = new OcrImageInput("document.png");
input.DeNoise();  // Remove image noise
input.Deskew();   // Correct image rotation
input.Scale(2);   // Upscale for better recognition

IronTesseract ocr = new IronTesseract();
ocr.Configuration.RenderHocr = true;
var result = ocr.Read(input);
var input = new OcrImageInput("document.png");
input.DeNoise();  // Remove image noise
input.Deskew();   // Correct image rotation
input.Scale(2);   // Upscale for better recognition

IronTesseract ocr = new IronTesseract();
ocr.Configuration.RenderHocr = true;
var result = ocr.Read(input);
Dim input As New OcrImageInput("document.png")
input.DeNoise()  ' Remove image noise
input.Deskew()   ' Correct image rotation
input.Scale(2)   ' Upscale for better recognition

Dim ocr As New IronTesseract()
ocr.Configuration.RenderHocr = True
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

Düşük kaliteli taramalar için, ek ön işleme adımları, hOCR doğruluğunu önemli ölçüde artırabilir. Filtre sihirbazı belirli belge türleriniz için en uygun filtre kombinasyonlarını belirlemenize yardımcı olur.

hOCR Yapısı Gelişmiş İşlemeyi Nasıl Destekler?

Oluşturulan hOCR, belge hiyerarşisini temsil eden iç içe div elemanlarıyla standart spesifikasyonu takip eder:

<div class='ocr_page' title='bbox 0 0 2480 3508'>
  <div class='ocr_carea' title='bbox 156 114 2324 3395'>
    <p class='ocr_par' title='bbox 157 114 2323 164'>
      <span class='ocr_line' title='bbox 157 114 2323 164'>
        <span class='ocr_word' title='bbox 157 114 294 161'>Hello</span>
        <span class='ocr_word' title='bbox 334 119 483 161'>World</span>
      </span>
    </p>
  </div>
</div>
<div class='ocr_page' title='bbox 0 0 2480 3508'>
  <div class='ocr_carea' title='bbox 156 114 2324 3395'>
    <p class='ocr_par' title='bbox 157 114 2323 164'>
      <span class='ocr_line' title='bbox 157 114 2323 164'>
        <span class='ocr_word' title='bbox 157 114 294 161'>Hello</span>
        <span class='ocr_word' title='bbox 334 119 483 161'>World</span>
      </span>
    </p>
  </div>
</div>
HTML

Bu yapı, hassas metin konumu çıkarmayı ve gelişmiş belge analiz yeteneklerini sağlar, mekansal metin ilişkileri veya düzen koruması gerektiren uygulamalar için değerli hale getirir. Tablo çıkarma ile çalışırken, hOCR formatı, tablo yapısını ve hücre ilişkilerini korumaya yardımcı olur.

Bbox (sınırlayıcı kutu) öznitelikleri, her metin elemanı için piksel hassasiyetinde konum verileri sağlayan "bbox left top right bottom" formatında koordinatlar içerir. Bu bilgi, şunlar için önemlidir:

  • Metin seçimi ile etkileşimli belge görüntüleyiciler oluşturma
  • Düzen koruyan gizleme sistemleri uygulama
  • Okuma sırasını koruyan erişilebilirlik araçları oluşturma
  • Belge karşılaştırma sistemleri geliştirme

Daha detaylı yapılandırma seçeneklerine ihtiyaç duyan geliştiriciler için, Tesseract detaylı yapılandırma kılavuzu hOCR çıktı kalitesini ve yapısını etkileyen gelişmiş ayarları sağlar.

Sıkça Sorulan Sorular

hOCR nedir ve OCR uygulamaları için neden faydalıdır?

hOCR (HTML tabanlı OCR), OCR sonuçlarını yapılandırılmış HTML olarak temsil eden ve tanınan metnin yanı sıra karakter koordinatları gibi mekansal bilgileri de depolayan bir dosya formatıdır. IronOCR, metin konum verileri, belge indeksleme, erişilebilirlik araçları ve taranmış belgelerin işlenmesi sırasında yerleşim bütünlüğünü sağlamak için gereklilik duyulan uygulamalarda hOCR çıktısını destekler.

C# OCR uygulamamda hOCR çıktısını nasıl etkinleştirebilirim?

IronOCR ile hOCR çıktısını etkinleştirmek için, IronTesseract örneğinizde Configuration.RenderHocr özelliğini true olarak ayarlayın. Bu, IronOCR'yi hOCR formatında OCR sonuçlarını hazırlamak için bilgilendirir, ve bu sonuçları SaveAsHocrFile veya SaveAsHocrString yöntemlerini kullanarak dışa aktarabilirsiniz.

hOCR sonuçlarının dışa aktarılması için hangi yöntemler mevcut?

IronOCR, hOCR sonuçlarını dışa aktarmak için iki yöntem sunar: SaveAsHocrFile() doğrudan diskte bir HTML dosyasına çıktıyı kaydeder ve SaveAsHocrString() hOCR HTML'ini daha fazla işleme veya uygulamanızda depolama için bir string olarak döndürür.

OCR sonuçlarını hOCR olarak yalnızca bir kod satırı ile dışa aktarabilir miyim?

Evet, IronOCR, yöntem zincirleme kullanarak bir satırlık hOCR dışa aktarımına olanak tanır. RenderHocr etkinleştirilmiş bir IronTesseract örneği oluşturabilir, girdinizi okuyabilir ve hepsini tek bir ifadede SaveAsHocrString() çağrabilirsiniz: var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput('image.png')).SaveAsHocrString();

hOCR, OCR sonuçlarından hangi tür mekansal bilgileri korur?

hOCR, orijinal görüntü veya belgedeki her tanınan karakterin yerleşim bilgilerini ve koordinatlarını korur. IronOCR'nin hOCR dışa aktarması, tani için metin vurgulama, görüntüler üzerinde tıklanabilir bindirmeler oluşturma ve metnin orijinal belgede nerede göründüğünü anlama gibi özelliklere olanak tanıyan bu mekansal verileri muhafaza eder.

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
İnceleyen
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluk Ekibi
Jeff, aynı zamanda .NET ve Visual Studio ekipleri için Baş Program Yöneticisi'dir. Microsoft geliştirici etkinlikleri (Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit) için atölye çalışmaları, sunumlar yazar ve içerik planlar ve haftada iki kez yayınlanan 'Fritz ve Arkadaşları' canlı yayınının ev sahibidir.
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.