Bir Resmin Belirli Bir OCR Bölgesini C#'da Nasıl Tanımlarım?
Belirli bir bölgeden bir görüntüdeki metni C# dilinde çıkarmak için, IronOCR'un Rectangle nesnesini kullanarak, y koordinatları, width ve height belirterek tam alanı tanımlayın, ardından hedeflenen OCR işleme için LoadImage yöntemine aktarın.
Hizli Başlangic: Belirli Bir Resim Bolgesinden Metin Cikarma
-
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.
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); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronOCR kullanmaya başlayın ücretsiz deneme ile
Genellikle, bir resmin küçük bir bolgesinden metin cikarmaniz yeterlidir, ornegin bir faturadaki toplam tutar veya bir formdaki belirli bir alan. Tüm belgeyi taramak verimsizdir ve alakasiz metinleri yakalayarak hatalara neden olabilir.
IronOCR, tam olarak taranacak dikdortgen bolgeyi belirterek kesinligi, performansi ve dogrulugu iyilestirmenize olanak tanir. Bu kılavuz, belirli bir OCR bolgesinin nasıl tanimlanacagi, bu bolgeden metin nasıl cikarilacagi ve koordinatorlerinizin OCR gorevleriniz icin dogru oldugunu nasıl gozle kontrol edebileceginiz konusunda adim adim bir yurutme sunar.
IronOCR Ile Başlayin
Bir Resmin Belirli Bir OCR Bolgesi Nasıl Tanitilir
- OCR bolgesini tanimlamak icin C# kutuphanesini indirin
- OCR motorunu başlatin
- OCR bolgesini bir dikdortgenle belirleyin
- Belirtilen dikdortgenle birlikte
LoadImagekullanarak resmi yukleyin OcrResultozelligine eriserek cikarilan verileri inceleyin ve manipule edin
Belirli Bir Bolgede OCR İşlemi Nasıl Yapılır?
Özel bir OCR bölgesi tanımlamak için, IronSoftware.Drawing ad alanından bir Rectangle nesnesi oluşturursunuz. Bu nesne dört değer gerektirir: x-koordinatı, y-koordinatı, width ve height, hepsi piksel cinsinden. (x, y) koordinatları, istediğiniz bölgenin sol üst köşesini temsil eder.
Görüntünüzü LoadImage kullanarak yüklediğinizde, bu Rectangle nesnesini ikinci parametre olarak geçirirsiniz. IronOCR daha sonra OCR işlemine sadace o sinirlayici kutunun icindeki piksellerle sinirli tutar.
Bolgesel OCR, özellikle faturalari, tarali formlari, ya da kimlik belgelerini gibi yapili belgelerle calisirken belirtilen bilgilerin daima tahmin edilebilir konumlarda gorundugu belgelerde faydalidir. OCR'yi yalnizca ilgili alanlara sinirlamayla, işleme hizi buyuk olcude artirabilir ve alakasiz metinlerden gelen hatali pozitifleri azaltabilrisiniz.
Koordinatları bulmak için MSN Paint gibi basit bir görüntü düzenleyici kullanabilirsiniz. Giriş görüntünüzü açın, fareyi belirtilen bölgenin sol üst ve sağ alt köşelerine 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 Resmi Kullanmalıyım?
Uc paragraflik örnek bir resim kullaniyoruz. Amacımız yalnizca ikinci paragrafini cikarmak ve diğer metni yok saymak. Bu, daha buyuk bir belgeden belirli alanlarin veya bölümlerin cikarilmasi gereken ortak bir durumu gösterir.
Bolgesel OCR'yi Koda Nasıl Taşirim?
Uygulama, bir OcrInput nesnesi oluşturmak ve görüntünüzü belirtilen dikdörtgen alanla yüklemeyi içerir. JPG, PNG, GIF, TIFF ve BMP dahil olmak üzere çeşitli resim formatlariyla calisir.
:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image.cs
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 Using
Daha karmasik seneryalar icin, ayni görüntüde birden fazla bolge tanimlayabilirsiniz. Bu, birden fazla alan iceren formlari veya dogrularda tabloları islerken özellikle kullanislidir:
using IronOcr;
using IronSoftware.Drawing;
var ocr = new IronTesseract();
using var input = new OcrInput();
// 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 multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);
input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);
input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);
// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
using IronOcr;
using IronSoftware.Drawing;
var ocr = new IronTesseract();
using var input = new OcrInput();
// 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 multiple times with different regions
input.LoadImage("form.png", nameField);
var nameResult = ocr.Read(input);
input.Clear();
input.LoadImage("form.png", dateField);
var dateResult = ocr.Read(input);
input.Clear();
input.LoadImage("form.png", amountField);
var amountResult = ocr.Read(input);
// Process each field separately
Console.WriteLine($"Name: {nameResult.Text}");
Console.WriteLine($"Date: {dateResult.Text}");
Console.WriteLine($"Amount: {amountResult.Text}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocr As New IronTesseract()
Using input As New OcrInput()
' Define multiple regions for different form fields
Dim nameField As New Rectangle(x:=100, y:=200, width:=300, height:=50)
Dim dateField As New Rectangle(x:=100, y:=300, width:=200, height:=50)
Dim amountField As New Rectangle(x:=400, y:=500, width:=150, height:=50)
' Load the same image multiple times with different regions
input.LoadImage("form.png", nameField)
Dim nameResult = ocr.Read(input)
input.Clear()
input.LoadImage("form.png", dateField)
Dim dateResult = ocr.Read(input)
input.Clear()
input.LoadImage("form.png", amountField)
Dim amountResult = ocr.Read(input)
' Process each field separately
Console.WriteLine($"Name: {nameResult.Text}")
Console.WriteLine($"Date: {dateResult.Text}")
Console.WriteLine($"Amount: {amountResult.Text}")
End Using
Ne Tür Sonuçlar Bekleyebilirim?
Konut cikisinizdan gorebileceginiz gibi, OCR tarafindan sadece ikinci paragraf islenir. Bu hedeflige yaklasim, görüntünun diğer kisimlarindaki alakasiz metnin sonuclarinizı etkilemesidgeilmesini saglar.
Bolgesel OCR'nin dogrulugu birkac faktore baglidir:
- Resim kalitesi: Daha yuksek cozunurluklu görüntüler genellikle daha iyi sonuclar verir. Görüntülerinizi optimize etmek icin DPI ayarlarini dusunun.
- Metin yonlendirme: Metnin dogru hizali oldugundan emin olun. Gerekirse sayfa donme algilamasini kullanin.
- Kontrast ve netlik: Metin okunabilirligini artırmak icin görüntü düzeltme filtreleri uygulayin.
Koordinatorlerimin Dogru Oldugundan Nasıl Emin Olurum?
Girdi resimi icin dogru koordinatorleri secip secmediginizi sfeed onaylamak icin tanimladiginiz ContentArea'nin görselleştirebilirsiniz. Bunu yapmanın basit bir yolu, dikdörtgeni giriş görüntüsüne çizmektir ve StampCropRectangleAndSaveAs ile yeni bir dosya olarak kaydetmektir. Bu, koordinatorlerinizi optimal performans icin sorun giderirken ve ince ayar yaparken isinize yarar.
Bu görselleştirme teknigi, karmaşık düzenlerle calisirken özellikle yardımcı olur veya kalite guvencesi icin belirli metin bolgilerini isaretlemeniz gerektiginde.
Iste yukaridaki örnek giris resmimize belirtilen sinirlayici kutu cizildikten sonra elde edilen cikis resmi.
Secilmis Bolge Nasıl Görüntülenir?
:path=/static-assets/ocr/content-code-examples/how-to/ocr-region-of-an-image-highlighted.cs
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 Using
Gorsellestirme Ne Benzer?
Isik mavisi dikdortgen, işlem icin ikinci paragrafin dogru sekilde izole edildigini dogrular.
Bolgesel OCR'yi Ne Zaman Kullanmaliyim?
Bolgesel OCR, genellikle birkac yaygın durumda idealdir:
- Form İşleme: Verilerin tutarli konumlarda gorundugu standart formlardan belirli alanlar cikartirken.
- Fatura İşleme: Tüm belgeyi işlemeye gerek kalmadan toplamlar, tarihler veya fatura numaralari gibi belirli degerleri cikarmak.
- Plaka: plaka tanima kullanırken, yalnizca plaka alanina odaklanin.
- Kimlik Belgeleri: Pasaportlardan veya kimlik kartlarindan belirli alanlar cikarma.
- Ekran Görüntüleri: Ekran görüntülerinde belirli arayuz ogelerinden metin yakalarken.
Bolgesel OCR Icin En Iyi Uygulamalar
Bolgesel OCR ile en iyi sonuclari elde etmek icin:
- Katman ekleyin: Karakterlerin kenarlarda kesilmediginden emin olmak icin metninizin etrafında küçük bir tampon yerlestirin.
- Örnek görüntülerle test edin: Buyuk partiler islenmeden once koordinatorlernizi temsil eden örneklerle her zaman dogrulayin.
- Değişiklerle bas edin: Taranmis belgelerdeki hafif konum değişikliklerini tespit edin, bolgelerinizi gerekli olandan biraz buyuk yaparak hesaplayin.
- Performansi optimize edin: Çok buyuk işlem icin, ayri bolgeleri paralel olarak isleyin.
- Guveni izleyin: Sonuc guveni puanlarini kontrol edin ve dogrulugu saglayin.
OCR işlemlerini belirli bolgelere odakladiginizda, metin cikarma gorevlerinizin hem hizini hem de dogrulugunu buyuk olcude geliştirebilirsiniz. Ticari uygulamalarinizda .NET uygulamalarınızda verimli belge işçisi akışları oluşturmak için bu hedefli yaklaşım esastır.
Sıkça Sorulan Sorular
C#'da yalnızca görüntünün belirli bir kısmından metin nasıl çıkartı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 yöntemine ikinci parametre olarak geçirin ve IronOCR çevrim işlemini yalnızca o tanımlı alanla sınırlayacaktır.
Tüm görüntüyü tarama yerine bir OCR bölgesi tanımlamanın avantajları 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 yakalamaktan kaynaklanan hataları azaltabilirsiniz. Bu, özellikle bilginin tahmin edilebilir konumlarda göründüğü yapısal belgeler için yararlıdır.
Bölgesel OCR için bir Dikdörtgen oluşturmak için hangi parametrelere ihtiyaçım var?
IronOCR'un bölgesel OCR'si için bir Dikdörtgen oluşturmak için piksel olarak dört değere ihtiyaçı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ölgelerini tanımlamak için kullanılan Dikdörtgen nesnesi hangi isim alanında yer alır?
IronOCR'da OCR bölgelerini tanımlamak için kullanılan Dikdörtgen nesnesi IronSoftware.Drawing isim alanında yer alır.
Hangi belge türleri bölgesel OCR işleminden en çok fayda sağlar?
IronOCR'un bölgesel OCR'si, özellikle belirli bilgilerin tutarlı konumlarda düzenli olarak ortaya çıktığı faturalar, taranmış formlar ve kimlik belgeleri gibi yapısal belgeler için etkilidir.

