C#'ta Bir Görüntünün Belirli Bir OCR Bölgesini Nasıl Tanımlarım?
C#'ta bir görüntünün belirli bir bölgesinden metin çıkarma için, IronOCR'nin Rectangle nesnesini kullanarak, tam alanı y koordinatlarını, width ve height belirterek tanımlayın, ardından hedeflenen OCR işlemi için LoadImage metoduna aktarın.
-
1Install IronOCR with NuGet Package Manager
-
2Bu kod parçacığını kopyalayın ve çalıştırın.
using IronOcr; using IronSoftware.Drawing; // 1. Install IronOCR via NuGet: Install-Package IronOcr var ocr = new IronTesseract(); using var input = new OcrInput(); // 2. Create a Rectangle with coordinates var region = new Rectangle(x: 215, y: 1250, width: 1335, height: 280); // 3. Load image with region input.LoadImage("image.png", region); // 4. Extract text var result = ocr.Read(input); Console.WriteLine(result.Text);C# -
3Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Genellikle, bir görüntünün sadece küçük bir bölümünden metin çıkarmanız gerekir, örneğin bir faturadaki toplam tutar veya bir formdan belirli bir alan. Tam belgeyi taramak verimsizdir ve gereksiz metni yakalayarak hatalar tanıtabilir.
IronOCR, taramak için tam dikdörtgen bölgeyi belirterek, doğruluğu, performansı ve hassasiyeti artırmanıza izin verir. Bu kılavuz, belirli bir OCR bölgesi tanımlama, bu bölgeden metin çıkarma ve OCR görevleriniz için koordinatların doğru olduğunu görsel olarak doğrulama üzerine adım adım bir süreç sağlar.
IronOCR ile Başlayın
Bir Görüntünün Belirli Bir OCR Bölgesini Nasıl Tanımlarım?
- OCR bölgesini tanımlama için C# kitaplığını indirin
- OCR motorunu başlatın
- Bir dikdörtgen ile OCR bölgesini belirtin
- Tanımlanmış dikdörtgen ile birlikte
LoadImagekullanarak görüntüyü yükleyin - OcrResult özelliğine erişerek çıkarılan veriyi görüntüleyebilir ve manipüle edebilirsiniz.
Belirli Bir Bölgede OCR Nasıl Yaparım?
Belirli bir OCR bölgesini tanımlamak için IronSoftware.Drawing isim alanından bir Rectangle nesnesi oluşturursunuz. Bu nesne dört değer gerektirir: x-koordinatı, y-koordinatı, width ve height, hepsi piksel olarak. (x, y) koordinatları istediğiniz alanın sol üst köşesini temsil eder.
Görüntünüzü LoadImage kullanarak yüklediğinizde, bu Rectangle'ı ikinci bir parametre olarak geçersiniz. IronOCR, bu sayede OCR işlemini yalnızca bu sınırlama kutusundaki piksellerle sınırlar.
Bölgesel OCR, özellikle faturalar, taratılmış formlar veya kimlik belgeleri gibi yapısal belgelerle çalışırken özellikle faydalıdır, çünkü belirli bilgiler her zaman öngörülebilir yerlerde yer alır. OCR'yi yalnızca ilgili alanlarla sınırlayarak, işleme hızını önemli ölçüde artırabilir ve gereksiz metinden kaynaklanan yanlış pozitifleri azaltabilirsiniz.
Rectangle koordinatlarını bulmak için, MS Paint gibi basit bir resim düzenleyici kullanabilirsiniz. Girdi görüntünüzü açın, farenizi belirtilen bölgenin sol üst ve sağ alt köşelerinin üzerine getirin ve (x, y) piksel koordinatlarını not edin. Daha sonra dikdörtgenin özelliklerini hesaplayabilirsiniz: (x1, y1, width, height), burada width = x1 ve height = y1.
Test için Hangi Görüntüyü Kullanmalıyım?
Üç paragraf içeren örnek bir görüntü kullanacağız. Amacımız yalnızca ikinci paragrafı çıkarmak ve diğer metni göz ardı etmektir. Bu, daha büyük bir belgeden belirli alanları veya bölümleri çıkarmanız gerektiği yaygın bir senaryoyu göstermektedir.

Bölgesel OCR'yi Koda Nasıl Uygularım?
Uygulama, bir OcrInput nesnesi oluşturmayı ve görüntünüzü belirtilen dikdörtgen bölge ile yüklemeyi içerir. Bu yaklaşım JPG, PNG, GIF, TIFF ve BMP dahil olmak üzere çeşitli görüntü formatlarıyla çalışır.
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define the specific region as a Rectangle
// (x, y) is the top-left corner.
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
ocrInput.LoadImage("region-input.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
// Print the extracted text
Console.WriteLine(ocrResult.Text);Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define the specific region as a Rectangle
' (x, y) is the top-left corner.
Dim ContentArea As New Rectangle(x:=215, y:=1250, width:=1335, height:=280)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print the extracted text
Console.WriteLine(ocrResult.Text)
End UsingDaha karmaşık senaryolar için, aynı görüntü içinde birden çok bölge tanımlayabilirsiniz. Bu, birden fazla alan içeren formları işlerken veya belgelerdeki tabloları işlerken özellikle faydalıdır:
using IronOcr;
using IronSoftware.Drawing;
var ocr = new IronTesseract();
// Define multiple regions for different form fields
var nameField = new Rectangle(x: 100, y: 200, width: 300, height: 50);
var dateField = new Rectangle(x: 100, y: 300, width: 200, height: 50);
var amountField = new Rectangle(x: 400, y: 500, width: 150, height: 50);
// Load the same image with a separate OcrInput per region
OcrResult nameResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", nameField);
nameResult = ocr.Read(input);
}
OcrResult dateResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", dateField);
dateResult = ocr.Read(input);
}
OcrResult amountResult;
using (var input = new OcrInput())
{
input.LoadImage("form.png", amountField);
amountResult = ocr.Read(input);
}
// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
Ne Tür Sonuçlar Bekleyebilirim?
Konsol çıktısından görebileceğiniz gibi, OCR yalnızca ikinci paragrafı işler. Bu hedeflenmiş yaklaşım, görüntünün diğer bölümlerindeki ilgisiz metnin sonuçları etkilemediğinden emin olur.

Bölgesel OCR'nin doğruluğu birkaç faktöre bağlıdır:
- Görüntü kalitesi: Daha yüksek çözünürlüklü görüntüler genellikle daha iyi sonuçlar verir. Görüntülerinizi optimize etmek için DPI ayarlarını kullanmayı düşünün.
- Metin yönelimi: Metnin doğru hizalandığından emin olun. Gerekirse sayfa yönelimi algılama kullanın.
- Kontrast ve netlik: Metin okunabilirliğini artırmak için görüntü düzeltme filtreleri uygulayın.
Koordinatlarımın Doğru Olduğunu Nasıl Doğrulayabilirim?
Giriş görüntüsü için doğru koordinatları seçtiğinizden emin olmak için tanımladığınız ContentArea'yı görselleştirin. Bunu yapmanın basit bir yolu, giriş görüntüsüne dikdörtgeni çizmek ve StampCropRectangleAndSaveAs ile yeni bir dosya olarak kaydetmektir. Bu, koordinatları optimal performans için ince ayar yapmanıza ve sorun gidermenize yardımcı olur.
Bu görselleştirme tekniği, karmaşık düzenlerle çalışırken veya belirli metin alanlarını kalite güvence amaçlarıyla vurgulamanız gerektiğinde özellikle faydalıdır.
Belirtilen sınırlayıcı kutuyu yukarıdaki örnek giriş görüntüsüne çizdikten sonra çıktı görüntüsü.
Seçilen Bölge Nasıl Görselleştirilir?
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define the specific rectangular area to scan within the image.
// The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
var ContentArea = new Rectangle(x: 4, y: 59, width: 365, height: 26);
ocrInput.LoadImage("region-input.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
// Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png");Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract = New IronTesseract()
Using ocrInput As New OcrInput()
' Define the specific rectangular area to scan within the image.
' The coordinates are in pixels: (x, y) is the top-left corner of the rectangle.
Dim ContentArea As New Rectangle(x:=4, y:=59, width:=365, height:=26)
ocrInput.LoadImage("region-input.png", ContentArea)
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Draws the rectangle from above in a blue bounding box on the image for visualization.
ocrInput.StampCropRectangleAndSaveAs(ContentArea, Color.Aqua, "region-input.png")
End UsingGörselleştirme Nasıl Görünür?

Hafif mavi dikdörtgen, işleme için doğru bir şekilde ikinci paragrafı izole ettiğimizi doğrular.
Bölgesel OCR Ne Zaman Kullanılmalı?
Bölgesel OCR, birçok yaygın senaryo için idealdir:
- Form İşleme: Verinin tutarlı yerlerde göründüğü standartlaştırılmış formlardan belirli alanları çıkarmak için.
- Fatura İşleme: Tüm belgeyi işlemden geçirmeden toplamlar, tarihler veya fatura numaraları gibi belirli değerleri çıkarmak için.
- Plakalar: Plaka tanıma kullanırken, yalnızca plaka alanına odaklanın.
- Kimlik Belgeleri: Pasaportlar veya kimlik kartlarından belirli alanları çıkarmak için.
- Ekran Görüntüleri: Belirli kullanıcı arayüzü öğelerinden ekran görüntüleri alırken metin yakalandığında.
Bölgesel OCR için En İyi Uygulamalar
Bölgesel OCR ile en iyi sonuçları elde etmek için:
- Kenar boşluğu ekleyin: Metninizin etrafında küçük bir tampon dahil edin, böylece kenarlarda karakterlerin kesilmemesi sağlanır.
- Örnek görüntülerle test edin: Büyük partileri işlemeye başlamadan önce koordinatlarınızı temsilci örneklerle daima doğrulayın.
- Varyasyonları yönetin: Tarama belgelerindeki hafif konum varyasyonlarını hesaba katarak, bölgelerinizi gerekenden biraz daha büyük yapın.
- Performansı optimize edin: Çoklu iş parçacığı ile işleme için farklı bölgeleri paralel olarak işleyin.
- Güveni izleyin: Doğruluğu sağlamak için sonuç güveni puanlarını kontrol edin.
OCR işlemlerini belirli bölgelere odaklayarak, metin çıkarma görevlerinizin hızını ve doğruluğunu önemli ölçüde artırabilirsiniz. Bu hedefe yönelik yaklaşım, .NET uygulamalarınızda verimli belge işleme iş akışları oluşturmak için esastır.
Sıkça Sorulan Sorular
C#'da yalnızca bir görüntünün belirli bir bölümünden nasıl metin çıkarırım?
IronOCR ile, x/y koordinatları, genişlik ve yükseklik değerleriyle bir Dikdörtgen nesnesi oluşturarak belirli bir bölgeden metin çıkarabilirsiniz. Bu Dikdörtgeni, LoadImage metodunun ikinci parametresi olarak geçirin ve IronOCR, OCR işlemini yalnızca o tanımlı alanla sınırlayacaktır.
Tüm görüntüyü taramak yerine bir OCR bölgesi tanımlamanın faydaları nelerdir?
IronOCR ile belirli bir OCR bölgesi tanımlayarak, işlem hızını artırabilir, doğruluğu artırabilir ve alakasız metin yakalamadan kaynaklanan hataları azaltabilirsiniz. Bu, bilgilerin öngörülebilir konumlarda göründüğü yapılandırılmış belgeler için özellikle faydalıdır.
Bölgesel OCR için bir Dikdörtgen oluşturmak için hangi parametrelere ihtiyacım var?
IronOCR'nin bölgesel OCR'si için bir Dikdörtgen oluşturmak için, piksel cinsinden dört değere ihtiyacınız var: x-koordinat, y-koordinat, genişlik ve yükseklik. (x, y) koordinatları, istenen tarama alanının sol üst köşesini temsil eder.
OCR bölgeleri tanımlamak için kullanılan Dikdörtgen nesnesi hangi ad alanındadır?
IronOCR'de OCR bölgelerini tanımlamak için kullanılan Dikdörtgen nesnesi, IronSoftware.Drawing ad alanında bulunur.
Bölgesel OCR işleminden en çok hangi belge türleri yararlanır?
IronOCR'nin bölgesel OCR'si, özel bilgilerin tutarlı bir şekilde aynı konumlarda göründüğü fatura, taranmış formlar ve kimlik belgeleri gibi yapılandırılmış belgeler için özellikle etkilidir.
Is it possible to visualize the OCR region on the input image?
Yes, you can visualize the OCR region by using the `StampCropRectangleAndSaveAs` method to draw the specified rectangle on the input image, aiding in coordinate verification.
For what applications is regional OCR particularly useful?
Regional OCR is useful for form processing, invoice scanning, license plate recognition, identity document analysis, and extracting text from UI elements in screenshots.
What are some best practices for using regional OCR in document processing?
Best practices include adding padding around text, testing with sample images, handling slight document variations, optimizing performance with multithreading, and monitoring result confidence scores.
How can I improve the accuracy of IronOCR's regional scanning?
Improve accuracy by using high-resolution images, ensuring proper text orientation, applying contrast and clarity filters, and verifying the targeted region visually.
Can IronOCR be used with different image formats?
Yes, IronOCR supports various image formats including JPG, PNG, GIF, TIFF, and BMP, making it versatile for different scanning and processing needs.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.