IronOCR ile C# İçinde Ekran Görüntüleri Nasıl Okunur
IronOCR'nin ReadScreenshot yöntemi, ekran görüntülerinden metni verimli bir şekilde çıkarır, çeşitli boyutlar ve gürültü sorunlarını ele alırken PNG, JPG ve BMP gibi yaygın dosya formatlarını destekler.
Ekran görüntüleri, bilgiyi hızlı bir şekilde paylaşmanın ve hayati verileri yakalamanın hızlı bir yolunu sağlar. Ancak, ekran görüntülerinden metin çıkarmak, değişen boyutlar ve gürültü nedeniyle zor olmuştur. Bu durum, ekran görüntülerini OCR için zorlu bir ortam haline getirir.
IronOCR, ReadScreenshot gibi özel yöntemler sunarak bu sorunu çözer. Bu yöntem, ekran görüntülerinin okunması ve onlardan bilgi çıkarılması için optimize edilmiştir ve yaygın dosya formatlarını kabul eder. Standart OCR yöntemlerinden farklı olarak, bu yöntem, ekran görüntüsü içeriğine özel ön işleme optimizasyonları uygular, otomatik gürültü azaltma ve kontrast artırma da dahil olmak üzere.
Bu işlevi kullanmak için [IronOcr.Extension.AdvancedScan] paketini yükleyin. Bu uzantı, özellikle kullanıcı arayüzü öğeleri, sistem yazı tipleri ve modern uygulamalardaki anti-alias edilmiş metinler için ekran görüntüsü metin tanıma doğruluğunu artıran gelişmiş bilgisayar görüşü yetenekleri sağlar.
Hızlı Başlangıç: Bir Ekran Görüntüsünden Metin Okuma
Using IronOCR, start in seconds ReadScreenshot—load your screen shot into a OcrInput file, call ReadScreenShot, and immediately access the extracted text, confidence score, and text regions via the OcrPhotoResult. Bu, görselleri minimum kurulumla kullanılabilir metne dönüştürmenin en hızlı yoludur.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronOcr -
Bu kod parçacığını kopyalayın ve çalıştırın.
OcrPhotoResult result = new IronTesseract().ReadScreenShot(new OcrInput().LoadImage("screenshot.png")); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Bu kılavuz, IronOCR'un ekran görüntüsü metin tanıma yeteneklerini nasıl kullanacağınızı örnekler eşliğinde ve sonuç nesnesinin özelliklerini anlatarak gösterir. Belirli bölgeleri işleme, çok dilli içeriği ele alma ve grup işlemleri için performansı optimize etme gibi ileri düzey senaryoları keşfedeceğiz.
Asgari İş Akışı (5 adım)
- Ekran görüntülerini okumak için C# kütüphanesini indirin
- İşleme için ekran görüntüleri içe aktarın
ReadScreenshotyöntemini kullanarak görselden metin çıkarın- Daha fazla işlem için OcrPhotoResult özelliğini kullanarak çıkarılan veriyi getirin
- Gerekli olduğunda çıkarılan metni kaydedin veya dışa aktarın
ReadScreenshot kullanarak ekran görüntülerinden metinleri nasıl çıkarabilirim?
IronOCR'da bir ekran görüntüsünü okumak için, OcrInput parametresini alan ReadScreenshot yöntemini kullanın. Bu yöntem, kütüphanenin standart Read karşılığına göre ekran görüntüleri için daha optimize edilmiştir. Optimizasyon, kullanıcı arayüzü öğelerinin otomatik algılanmasını, anti-alias edilmiş yazı tiplerinin daha iyi işlenmesini ve farklı işletim sistemlerinde sistem yazı tiplerinin geliştirilmiş tanınmasını içerir.
- Yöntem, şu anda İngilizce, Çince, Japonca, Korece ve Latin temelli alfabeler dahil olmak üzere diller için çalışır. Gelişmiş tarama işleminin .NET Framework üzerinde kullanımı için projenin x64 mimarisinde çalıştırılması gerekmektedir.
)}]
Hangi Tür Ekran Görüntüleri En İyi Çalışır?
Aşağıda kod örneği için girdimiz; Bu yöntemin farklı metin yazı tiplerini ve boyutlarını karıştırarak çok yönlülüğünü gösteriyoruz. ReadScreenshot yöntemi şu unsurları tanımada mükemmeldir:
- Sistem kullanıcı arayüzü yazı tipleri (Windows, macOS, Linux)
- Modern uygulamalardan anti-alias edilmiş metin
- Karışık yazı boyutları ve stilleri
- Karmaşık arka planlara yerleştirilmiş metin
- Konsol çıktısı ve terminal ekran görüntüleri
- Çeşitli web yazı tipleriyle tarayıcı içeriği
En iyi sonuçlar için, sıkıştırma olmadan yerel çözünürlükte ekran görüntüleri yakalayın. Yöntem çeşitli görsel formatlarını işlese de, PNG formatı kayıpsız sıkıştırması sayesinde metin netliğini en iyi koruyan formattır.

ReadScreenshot Yöntemini Nasıl Uygularım?
:path=/static-assets/ocr/content-code-examples/how-to/read-screenshot-read-screenshot.cs
using IronOcr;
using System;
using System.Linq;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputScreenshot = new OcrInput();
inputScreenshot.LoadImage("screenshotOCR.png");
// Perform OCR
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Output screenshot information
Console.WriteLine(result.Text);
Console.WriteLine(result.TextRegions.First().Region.X);
Console.WriteLine(result.TextRegions.Last().Region.Width);
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
Imports System.Linq
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputScreenshot = New OcrInput()
inputScreenshot.LoadImage("screenshotOCR.png")
' Perform OCR
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Output screenshot information
Console.WriteLine(result.Text)
Console.WriteLine(result.TextRegions.First().Region.X)
Console.WriteLine(result.TextRegions.Last().Region.Width)
Console.WriteLine(result.Confidence)
Karmaşık senaryolar için, ekran görüntüsü okuma işlemini ek ön işlemlerle iyileştirin:
using IronOcr;
using System;
// Configure OCR engine with specific settings for screenshots
var ocr = new IronTesseract()
{
// Set language for better accuracy with non-English content
Language = OcrLanguage.English,
// Configure for screen-resolution images
Configuration = new TesseractConfiguration()
{
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
// Enable whitelist for specific characters if needed
WhiteListCharacters = null
}
};
using var inputScreenshot = new OcrInput();
// Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI
// Apply preprocessing for better accuracy
inputScreenshot.DeNoise(); // Remove screenshot artifacts
inputScreenshot.Sharpen(); // Enhance text edges
// Perform OCR with error handling
try
{
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Process results with confidence threshold
if (result.Confidence > 0.8)
{
Console.WriteLine($"High confidence text extraction: {result.Text}");
}
else
{
Console.WriteLine("Low confidence - consider image preprocessing");
}
}
catch (Exception ex)
{
Console.WriteLine($"OCR Error: {ex.Message}");
}
using IronOcr;
using System;
// Configure OCR engine with specific settings for screenshots
var ocr = new IronTesseract()
{
// Set language for better accuracy with non-English content
Language = OcrLanguage.English,
// Configure for screen-resolution images
Configuration = new TesseractConfiguration()
{
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
// Enable whitelist for specific characters if needed
WhiteListCharacters = null
}
};
using var inputScreenshot = new OcrInput();
// Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96); // Standard screen DPI
// Apply preprocessing for better accuracy
inputScreenshot.DeNoise(); // Remove screenshot artifacts
inputScreenshot.Sharpen(); // Enhance text edges
// Perform OCR with error handling
try
{
OcrPhotoResult result = ocr.ReadScreenShot(inputScreenshot);
// Process results with confidence threshold
if (result.Confidence > 0.8)
{
Console.WriteLine($"High confidence text extraction: {result.Text}");
}
else
{
Console.WriteLine("Low confidence - consider image preprocessing");
}
}
catch (Exception ex)
{
Console.WriteLine($"OCR Error: {ex.Message}");
}
Imports IronOcr
Imports System
' Configure OCR engine with specific settings for screenshots
Dim ocr As New IronTesseract() With {
' Set language for better accuracy with non-English content
.Language = OcrLanguage.English,
' Configure for screen-resolution images
.Configuration = New TesseractConfiguration() With {
.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
' Enable whitelist for specific characters if needed
.WhiteListCharacters = Nothing
}
}
Using inputScreenshot As New OcrInput()
' Load screenshot with specific DPI setting for consistency
inputScreenshot.LoadImage("screenshotOCR.png", 96) ' Standard screen DPI
' Apply preprocessing for better accuracy
inputScreenshot.DeNoise() ' Remove screenshot artifacts
inputScreenshot.Sharpen() ' Enhance text edges
' Perform OCR with error handling
Try
Dim result As OcrPhotoResult = ocr.ReadScreenShot(inputScreenshot)
' Process results with confidence threshold
If result.Confidence > 0.8 Then
Console.WriteLine($"High confidence text extraction: {result.Text}")
Else
Console.WriteLine("Low confidence - consider image preprocessing")
End If
Catch ex As Exception
Console.WriteLine($"OCR Error: {ex.Message}")
End Try
End Using
OcrPhotoResult hangi özellikleri döndürür?

Konsol çıktısı, ekran görüntüsünden çıkan tüm metin örneklerinin çıkarıldığını gösteriyor. OcrPhotoResult'nin özelliklerini ve bunların nasıl etkili bir şekilde kullanılabileceğini inceleyelim:
Text: OCR Girişinden çıkarılan metin. Bu özellik, kesintisiz dizileri satır sonları ve boşluklarla birlikte tek bir metin olarak içerir.Confidence: 0 ile 1 arasında bir ölçekte istatistiksel doğruluk güvenini gösteren bir çift özellik; burada 1, en yüksek güveni temsil eder. Bunu uygulamanızda kalite kontrol uygulamak için kullanın.TextRegion: Ekran görüntüsünde metnin bulunduğu alanları döndüren özellikleri barındıranTextRegionnesnelerinden oluşan bir dizi. Varsayılan olarak, tümTextRegion, IronOCR modellerinden türetilmiş birRectanglesınıfıdır. Dikdörtgeninxveykoordinatlarının yanı sıraheightvewidthkoordinatlarını içerir.
TextRegions ile çalışmak size şunları sağlar:
- Belirli ekran görüntüsü bölgelerinden metin çıkarın
- Kullanıcı arayüzü öğelerinin yerlerini tanımlayın
- Metin konumlarına dayalı tıklanabilir katmanlar oluşturun
- bölgeye özgü OCR işlemleri uygulayın
İşte bireysel metin bölgelerinin işlenmesine bir örnek:
using IronOcr;
using System;
using System.Linq;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("screenshot.png");
OcrPhotoResult result = ocr.ReadScreenShot(input);
// Process each text region individually
foreach (var region in result.TextRegions)
{
Console.WriteLine($"Text: {region.Text}");
Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}");
Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}");
Console.WriteLine($"Confidence: {region.Confidence:P2}");
Console.WriteLine("---");
}
// Find specific UI elements by text content
var buttonRegion = result.TextRegions
.FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));
if (buttonRegion != null)
{
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
using IronOcr;
using System;
using System.Linq;
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("screenshot.png");
OcrPhotoResult result = ocr.ReadScreenShot(input);
// Process each text region individually
foreach (var region in result.TextRegions)
{
Console.WriteLine($"Text: {region.Text}");
Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}");
Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}");
Console.WriteLine($"Confidence: {region.Confidence:P2}");
Console.WriteLine("---");
}
// Find specific UI elements by text content
var buttonRegion = result.TextRegions
.FirstOrDefault(r => r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase));
if (buttonRegion != null)
{
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}");
}
Imports IronOcr
Imports System
Imports System.Linq
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadImage("screenshot.png")
Dim result As OcrPhotoResult = ocr.ReadScreenShot(input)
' Process each text region individually
For Each region In result.TextRegions
Console.WriteLine($"Text: {region.Text}")
Console.WriteLine($"Location: X={region.Region.X}, Y={region.Region.Y}")
Console.WriteLine($"Size: {region.Region.Width}x{region.Region.Height}")
Console.WriteLine($"Confidence: {region.Confidence:P2}")
Console.WriteLine("---")
Next
' Find specific UI elements by text content
Dim buttonRegion = result.TextRegions _
.FirstOrDefault(Function(r) r.Text.Contains("Submit", StringComparison.OrdinalIgnoreCase))
If buttonRegion IsNot Nothing Then
Console.WriteLine($"Found button at: {buttonRegion.Region.X}, {buttonRegion.Region.Y}")
End If
End Using
İleri Düzey Ekran Görüntüsü İşleme Teknikleri
Çok Dilli Ekran Görüntülerini İşleme
Birden fazla dili içeren ekran görüntüleriyle çalışırken, IronOCR sağlam bir çok dilli destek sağlar. Bu, uluslararası uygulamalar veya çok dilli kullanıcı arayüzlerinden gelen ekran görüntüleri için yararlıdır:
using IronOcr;
// Configure for multiple languages
var ocr = new IronTesseract();
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
ocr.AddSecondaryLanguage(OcrLanguage.Japanese);
using var input = new OcrInput();
input.LoadImage("multilingual-screenshot.png");
// Process with language detection
OcrPhotoResult result = ocr.ReadScreenShot(input);
Console.WriteLine($"Extracted multilingual text: {result.Text}");
using IronOcr;
// Configure for multiple languages
var ocr = new IronTesseract();
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
ocr.AddSecondaryLanguage(OcrLanguage.Japanese);
using var input = new OcrInput();
input.LoadImage("multilingual-screenshot.png");
// Process with language detection
OcrPhotoResult result = ocr.ReadScreenShot(input);
Console.WriteLine($"Extracted multilingual text: {result.Text}");
Imports IronOcr
' Configure for multiple languages
Dim ocr As New IronTesseract()
ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified)
ocr.AddSecondaryLanguage(OcrLanguage.Japanese)
Using input As New OcrInput()
input.LoadImage("multilingual-screenshot.png")
' Process with language detection
Dim result As OcrPhotoResult = ocr.ReadScreenShot(input)
Console.WriteLine($"Extracted multilingual text: {result.Text}")
End Using
Toplu İşlem İçin Performans Optimizasyonu
Birden fazla ekran görüntüsü işlerken, bu optimizasyon stratejilerini uygulayın:
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;
public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths)
{
var ocr = new IronTesseract();
// Process screenshots in parallel for better performance
var tasks = screenshotPaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
// Apply consistent preprocessing
input.DeNoise();
var result = await Task.Run(() => ocr.ReadScreenShot(input));
return new { Path = path, Result = result };
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var item in results)
{
Console.WriteLine($"File: {item.Path}");
Console.WriteLine($"Text: {item.Result.Text}");
Console.WriteLine($"Confidence: {item.Result.Confidence:P2}");
}
}
using IronOcr;
using System.Collections.Generic;
using System.Threading.Tasks;
public async Task ProcessScreenshotBatchAsync(List<string> screenshotPaths)
{
var ocr = new IronTesseract();
// Process screenshots in parallel for better performance
var tasks = screenshotPaths.Select(async path =>
{
using var input = new OcrInput();
input.LoadImage(path);
// Apply consistent preprocessing
input.DeNoise();
var result = await Task.Run(() => ocr.ReadScreenShot(input));
return new { Path = path, Result = result };
});
var results = await Task.WhenAll(tasks);
// Process results
foreach (var item in results)
{
Console.WriteLine($"File: {item.Path}");
Console.WriteLine($"Text: {item.Result.Text}");
Console.WriteLine($"Confidence: {item.Result.Confidence:P2}");
}
}
Imports IronOcr
Imports System.Collections.Generic
Imports System.Threading.Tasks
Public Async Function ProcessScreenshotBatchAsync(screenshotPaths As List(Of String)) As Task
Dim ocr As New IronTesseract()
' Process screenshots in parallel for better performance
Dim tasks = screenshotPaths.Select(Async Function(path)
Using input As New OcrInput()
input.LoadImage(path)
' Apply consistent preprocessing
input.DeNoise()
Dim result = Await Task.Run(Function() ocr.ReadScreenShot(input))
Return New With {Key .Path = path, Key .Result = result}
End Using
End Function)
Dim results = Await Task.WhenAll(tasks)
' Process results
For Each item In results
Console.WriteLine($"File: {item.Path}")
Console.WriteLine($"Text: {item.Result.Text}")
Console.WriteLine($"Confidence: {item.Result.Confidence:P2}")
Next
End Function
Ekran Görüntüsü OCR İçin En İyi Uygulamalar
- Yakalama Kalitesi: Ekran görüntülerini ölçekleme yapmadan yerel çözünürlükte yakalayın
- Format Seçimi: Kayıpsız kalitenin korunması için PNG formatını seçin
- Ön İşleme: Ekran görüntüsü içeriğine göre uygun filtreler uygulayın
- Güven Eşikleri: Kritik uygulamalar için güvene dayalı doğrulama yapın
- İlerleme İzleme: Uzun operasyonlar için ilerleme izleme uygulayın
Yaygın Kullanım Durumları
ReadScreenshot yöntemi şunlar için idealdir:
- Otomatik UI test ve doğrulama
- Dijital varlık yönetim sistemleri
- Hata mesajlarını yakalamak için müşteri destek araçları
- Doküman otomasyonu
- Ekran okuyucular için erişilebilirlik araçları
- Oyun ve yayın uygulamaları
IronOCR Özellikleri ile Entegrasyon
Ekran görüntüsü okuma yeteneği, diğer IronOCR özellikleriyle sorunsuz bir şekilde entegre olur. Verileri çeşitli formatlarda dışa aktarmak için kapsamlı OCR sonuçları manipülasyonunu keşfedin veya tanıma doğruluğunu ince ayar yapmak için gelişmiş Tesseract yapılandırmasına dalın.
Özet
IronOCR'nin ReadScreenshot yöntemi, ekran görüntülerinden metin çıkarmak için güçlü ve optimize edilmiş bir çözüm sunar. Özel ön işleme, yüksek doğruluk ve kapsamlı sonuç verileri ile geliştiricilerin güvenilir bir şekilde ekran görüntüsü içeriğini işleyen sağlam uygulamalar inşa etmelerine olanak tanır. İster otomasyon araçları, ister erişilebilirlik çözümleri veya veri çıkarma sistemleri geliştirin, ReadScreenshot yöntemi üretim ortamları için gereken performansı ve doğruluğu sunar.
Sıkça Sorulan Sorular
Ekran görüntülerinden OCR çıkarımı neden zordur?
Ekran görüntüleri, değişen boyutlar ve gürültü seviyeleri nedeniyle OCR için benzersiz zorluklar sunar. IronOCR, otomatik gürültü azaltma ve özellikle ekran görüntüleri içeriği için optimize edilen kontrast geliştirme uygulayan özel ReadScreenshot metodu ile bu sorunları ele alır.
Ekran görüntülerini OCR için hangi dosya formatları destekleniyor?
IronOCR'un ReadScreenshot metodu, PNG, JPG ve BMP gibi yaygın görüntü dosya formatlarını destekler, böylece çoğu ekran görüntüsü yakalama araç ve uygulaması ile uyumludur.
ReadScreenshot metodu standart OCR metodlarından nasıl farklıdır?
IronOCR'daki standart OCR metodlarından farklı olarak, ReadScreenshot metodu, ekran görüntüleri içeriğine özgü belirli önişlem optimizasyonlarını uygular, otomatik gürültü azaltma, kontrast geliştirme ve anti-aliasingli yazı tipleri ve kullanıcı arabirimi öğelerinin daha iyi yönetimini içerir.
Ekran görüntüsü OCR işlevselliği için hangi ek paket gereklidir?
IronOCR'da ReadScreenshot fonksiyonunu kullanmak için, IronOcr.Extension.AdvancedScan paketini yüklemeniz gerekir, bu da ekran görüntüsü metin tanıma doğruluğunu artıran gelişmiş bilgisayarlı görme yetenekleri sağlar.
Ekran görüntülerinden metin çıkartmaya ne kadar hızlı başlayabilirim?
IronOCR ile ekran görüntünüzü bir OcrInput'a yükleyerek, ReadScreenShot çağırarak ve hemen ardından OcrPhotoResult üzerinden çıkarılan metne, güven skoruna ve metin bölgelerine erişerek saniyeler içinde ekran görüntülerinden metin çıkartabilirsiniz.
Ekran görüntüsü OCR, hangi içerik türleri için optimize edilir?
IronOCR'un ekran görüntüsü optimizasyonu, kullanıcı arayüzü bileşenlerinin otomatik algılanması, farklı işletim sistemlerinde sistem fontlarının iyileştirilmiş tanınması ve modern uygulamalarda yaygın olarak bulunan anti-aliasingli metinlerin daha iyi işlenmesini içerir.
Ekran görüntüsünün belirli bölgelerini işleyebilir miyim?
Evet, IronOCR ekran görüntülerinin belirli bölgelerinin işlenmesini destekler, böylece tüm resmi işlemek yerine belirli ilgi alanlarına hedefleyebilirsiniz, bu da performansı ve doğruluğu artırabilir.
Ekran görüntülerindeki çok dilli içerik destekleniyor mu?
IronOCR'un ReadScreenshot metodu, ekran görüntülerindeki çok dilli içeriği işleyebilir, bu da uluslararası uygulamalar ve çok dilli kullanıcı arayüzleri için uygundur.
IronOCR veri doğruluğunu nasıl artırabilir?
IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.
IronOCR için ücretsiz bir deneme mevcut mu?
Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

