C#'te Bilgisayarla Görme Kullanarak Metin Bulma

Bilgisayar Görüşü ile C#'ta Metin Nasıl Bulunur

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

IronOCR, OCR işleminden önce görüntülerdeki metin bölgelerini otomatik olarak algılamak için OpenCV bilgisayarla görme kullanır. Bu, Tesseract tanımasını yalnızca belirlenen metin alanlarına odaklayarak, gürültülü, çok bölgeli veya bozuk metinlerdeki doğruluğu artırır ve tüm görüntüleri işlemekle kıyaslandığında çıkarım sonuçlarını önemli ölçüde artırır.

Hızlı Başlangıç: Birincil Metin Bölgesini Algıla ve OCR Yap

Bu örnek, anında metin çıkarma işlemini göstermektedir: bir görüntü yükleyin, IronOCR'nin Bilgisayar Görme özelliğini kullanarak FindTextRegion() ile ana metin bölgesini otomatik olarak algılayın, ardından .Read(...) komutunu çalıştırarak metni tek satırda çıkarın.

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    using var result = new IronTesseract().Read(new OcrInput().LoadImage("image.png").FindTextRegion());
  3. Canlı ortamınızda test için dağıtım yapın

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

    arrow pointer

IronOcr.ComputerVision'u NuGet Paketi Üzerinden Nasıl Kurarım?

IronOCR'de bilgisayar vizyonu gerçekleştiren OpenCV yöntemleri, normal IronOCR NuGet paketinde görünür. Detaylı kurulum kılavuzu için, NuGet kurulum kılavuzumuza bakın.

IronOCR Neden Ayrı Bilgisayar Görme Paketi Gerektiriyor?

Bu yöntemleri kullanmak için, çözüme IronOcr.ComputerVision'nin NuGet kurulumu gerekir. Eğer kurulum yapılmadıysa, indirilmesi gerektiğine dair bir uyarı alırsınız. Bilgisayar görme işlevselliği, IronOCR'nin plaka tanıma ve pasaport tarama özelliklerinde kullanılan tekniklere benzer şekilde önemli ölçüde metin algılama doğruluğunu artıran OpenCV algoritmalarını kullanır.

Hangi Platforma Özgü Paketi Kurmalıyım?

Paket Yöneticisi Konsolu Kullanarak Nasıl Kurarım?

NuGet Paket Yöneticisi kullanarak yükleyin ya da aşağıdakileri Paket Yöneticisi Konsolu'na yapıştırın:

Install-Package IronOcr.ComputerVision.Windows

IronOCR Bilgisayar Görüşü'nü model dosyamızla kullanmak için gerekli derlemeleri sağlar.

IronOCR'da Hangi Bilgisayar Görüşü Metotları Mevcuttur?

Kod örnekleri bu eğitimin ilerleyen kısımlarında yer almaktadır. İşte şu anda kullanılabilir olan metotların genel bir özeti:

Yöntem Açıklama
FindTextRegion Metin öğeleri içeren bölgeleri tespit edin ve Tesseract'a yalnızca metin tespit edilen alan içinde arama yapmasını talep edin.
FindMultipleTextRegions Metin öğeleri içeren alanları tespit edin ve sayfayı metin bölgelerine göre ayrı görüntülere ayırın.
GetTextRegions Scans the image and returns a list of text regions as List.

FindTextRegion Nasıl Kullanarak Metin Alanları Tespit Edilir?

FindTextRegion, OcrInput nesnesinin her sayfasında metin öğeleri içeren bölgeleri tespit etmek için bilgisayar görüşünü kullanır. Bu yöntem, metin dağınık olan görüntüler işlenirken veya sadece metin içeren alanlara odaklanarak performansı artırmak istediğinizde özellikle kullanışlıdır.

Temel FindTextRegion Kullanımı Nedir?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Dikkat Bu yöntem aşırı yüklemesi şu anda IronOcr 2025.6.x içinde kullanımdan kaldırılmıştır ve özel parametreleri kabul etmemektedir.

FindTextRegion Parametrelerini Nasıl Özelleştirebilirim?

Metin tespitini ince ayarlamak için bu yöntemi özel parametrelerle çağırın. Bu parametreler, görüntü filtresi yapılandırmalarımız ile benzer şekilde çalışır:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindTextRegion(Scale: 2.0, DilationAmount: 20, Binarize: true, Invert: true);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindTextRegion(Scale:= 2.0, DilationAmount:= 20, Binarize:= True, Invert:= True)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

FindTextRegion Uygulamada Nasıl Gözükür?

Bu örnekte, metin içeren alanlara kırpılacak bir yöntem için aşağıdaki görüntüyü kullanıyorum, ancak girdi görüntüleri metin konumunda farklılık gösterebilir. FindTextRegion kullanarak taramayı Computer Vision'ın metin algıladığı bir alana daraltıyorum. Bu yaklaşım, içerik alanları ve kırpma bölgeleri eğiticimizde kullanılan tekniklere benzerdir. Bu bir örnek görseldir:

Iron Software 2022 şirket istatistikleri, geliştirici metriklerini ve iş performansı verilerini gösteriyor
:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findtextregion-3.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Linq;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("wh-words-sign.jpg");

// Find the text region using Computer Vision
Rectangle textCropArea = input.GetPages().First().FindTextRegion();

// For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png);

// Looks good, so let us apply this region to hasten the read:
var ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea);
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Linq

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("wh-words-sign.jpg")

' Find the text region using Computer Vision
Dim textCropArea As Rectangle = input.GetPages().First().FindTextRegion()

' For debugging and demonstration purposes, lets see what region it found:
input.StampCropRectangleAndSaveAs(textCropArea, Color.Red, "image_text_area", AnyBitmap.ImageFormat.Png)

' Looks good, so let us apply this region to hasten the read:
Dim ocrResult = ocr.Read("wh-words-sign.jpg", textCropArea)
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

Metin Bölgesi Tespitini Nasıl Hata Ayıklayıp Doğrularım?

Bu kodun iki çıktısı vardır. İlki, hata ayıklama için kullanılan StampCropRectangleAndSaveAs tarafından kaydedilen bir .png dosyasıdır. Bu teknik, hata ayıklama için metinleri vurgulama rehberimizde de ele alınmıştır. IronCV'nin (Bilgisayar Görüşü) metni tespit ettiği yeri görebiliriz:

Iron Software 2022 istatistikleri, FindTextRegion metin tespit işlevini gösteren kırmızı sınır kutusu ile

Tespit metin alanını doğru bir şekilde tanımlar. İkinci çıktı metnin kendisidir:

IRONSOFTWARE

50,000+

Developers in our active community

10,777,061 19,313
NuGet downloads Support tickets resolved
50%+ 80%+
Engineering Team growth Support Team growth
$25,000+

Raised with #TEAMSEAS to clean our beaches & waterways

Birden Fazla Metin Alanı için FindMultipleTextRegions Nasıl Kullanılır?

FindMultipleTextRegions, bir OcrInput nesnesinin tüm sayfalarını alır ve bilgisayar görüşünü kullanarak metin öğeleri içeren alanları tespit eder, ardından girişi metin bölgelerine göre ayrı görüntülere böler. Bu, belge içeriğinde tablo okuma işlevselliğimize benzer, birden fazla ayırt edilebilir metin alanı olan belgeleri işlerken özellikle yararlıdır.

Temel FindMultipleTextRegions Kullanımı Nedir?

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-1.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions();
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions()
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

Dikkat IronOCR v2025.6.x sürümünden itibaren, FindMultipleTextRegions yöntemi artık özel parametreleri desteklememektedir.

FindMultipleTextRegions Parametrelerini Nasıl Özelleştirebilirim?

Bölgelerin nasıl tespit edildiğini ve ayrıldığını kontrol etmek için bu yöntemi özel parametrelerle çağırın:

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-2.cs
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("/path/file.png");

input.FindMultipleTextRegions(Scale: 2.0, DilationAmount: -1, Binarize: true, Invert: false);
OcrResult result = ocr.Read(input);
string resultText = result.Text;
Imports IronOcr

Private ocr = New IronTesseract()
Private input = New OcrInput()
input.LoadImage("/path/file.png")

input.FindMultipleTextRegions(Scale:= 2.0, DilationAmount:= -1, Binarize:= True, Invert:= False)
Dim result As OcrResult = ocr.Read(input)
Dim resultText As String = result.Text
$vbLabelText   $csharpLabel

FindMultipleTextRegions ile Bireysel Sayfalar Nasıl İşlenir?

FindMultipleTextRegions'nin başka bir aşırı yükleme yöntemi, bir OCR Sayfasını alır ve üzerindeki her metin bölgesi için bir tane olmak üzere bir OCR Sayfaları listesi döndürür. Bu yaklaşım, karmaşık düzenlerle uğraşırken yardımcı olur, çok sayfalı TIFF işleme kılavuzumuzda açıklanan tekniklere benzer.

:path=/static-assets/ocr/content-code-examples/how-to/computer-vision-findmultipletextregions-3.cs
using IronOcr;
using System.Collections.Generic;
using System.Linq;

int pageIndex = 0;
using var input = new OcrInput();
input.LoadImage("/path/file.png");

var selectedPage = input.GetPages().ElementAt(pageIndex);
List<OcrInputPage> textRegionsOnPage = selectedPage.FindMultipleTextRegions();
Imports IronOcr
Imports System.Collections.Generic
Imports System.Linq

Private pageIndex As Integer = 0
Private input = New OcrInput()
input.LoadImage("/path/file.png")

Dim selectedPage = input.GetPages().ElementAt(pageIndex)
Dim textRegionsOnPage As List(Of OcrInputPage) = selectedPage.FindMultipleTextRegions()
$vbLabelText   $csharpLabel

GetTextRegions Kullanarak Metin Bölgesi Koordinatları Nasıl Elde Edilir?

GetTextRegions, bir sayfada metin tespit edilen kırpma alanlarının bir listesini döndürür. Bu yöntem, daha fazla işlem için metin bölgelerinin koordinatlarına ihtiyacınız olduğunda veya özelleştirilmiş OCR iş akışlarını uygular. Sonuçlarla çalışmaya dair daha fazla ayrıntı için OcrResult sınıfı belgemize bakın:

FindTextRegion Yerine GetTextRegions Ne Zaman Kullanılmalı?

/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
/* :path=/static-assets/ocr/content-code-examples/how-to/computer-vision-gettextregions.cs */
using IronOcr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;

// Create a new IronTesseract object for OCR
var ocr = new IronTesseract();

// Load an image into OcrInput
using var input = new OcrInput();
input.LoadImage("/path/file.png");

// Get the first page from the input
var firstPage = input.GetPages().First();

// Get all text regions detected on this page
List<Rectangle> textRegions = firstPage.GetTextRegions();

// Display information about each detected region
Console.WriteLine($"Found {textRegions.Count} text regions:");
foreach (var region in textRegions)
{
    Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}");
}

// You can also process each region individually
foreach (var region in textRegions)
{
    var regionResult = ocr.Read(input, region);
    Console.WriteLine($"Text in region: {regionResult.Text}");
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq

' Create a new IronTesseract object for OCR
Dim ocr As New IronTesseract()

' Load an image into OcrInput
Using input As New OcrInput()
    input.LoadImage("/path/file.png")

    ' Get the first page from the input
    Dim firstPage = input.GetPages().First()

    ' Get all text regions detected on this page
    Dim textRegions As List(Of Rectangle) = firstPage.GetTextRegions()

    ' Display information about each detected region
    Console.WriteLine($"Found {textRegions.Count} text regions:")
    For Each region In textRegions
        Console.WriteLine($"Region at X:{region.X}, Y:{region.Y}, Width:{region.Width}, Height:{region.Height}")
    Next

    ' You can also process each region individually
    For Each region In textRegions
        Dim regionResult = ocr.Read(input, region)
        Console.WriteLine($"Text in region: {regionResult.Text}")
    Next
End Using
$vbLabelText   $csharpLabel

OCR'da Bilgisayar Görüşü için Yaygın Kullanım Alanları Nedir?

Bilgisayar görüşü, zorlu senaryolarda OCR doğruluğunu büyük ölçüde artırır. İşte pratik uygulamalar:

  1. Belge Düzeni Analizi: Karmaşık belgelerin farklı bölümlerini otomatik olarak tanımlayın ve işleyin. Taralı belgelerle özellikle faydalıdır.
  2. Çok Sütunlu Metin: Gazeteler veya dergiler için sütunları bağımsız olarak ayırın ve okuyun. Daha hızlı sonuçlar için çoklu iş parçacıklı işleme kullanın.
  3. Karışık İçerik: Belgelerdeki metin bölgeleri ve grafikler arasında ayrım yapın. Metin gömülü fotoğrafları işlerken yardımcı olur.
  4. Performans Optimizasyonu: OCR işlemesini yalnızca metin içeren alanlara odaklayın. Hızlı OCR yapılandırma kılavuzumuzna bakın.
  5. Kalite Kontrol: Tam OCR işlemeden önce metin tespitini doğrulayın. İlerleme izleme özelliğimiz her aşamayı izler.

Doğru ayarlar ve giriş dosyalarıyla, OCR neredeyse insan okuma kapasitesine ulaşabilir. En iyi sonuçlar için, bilgisayar görüşünü görüntü optimizasyon filtrelerimizle birleştirerek mümkün olan en iyi OCR doğruluğunu elde edin. Düşük kaliteli görüntülerle çalışırken düşük kalite taramaları düzeltme kılavuzumuz değerli ön işleme teknikleri sunar.

Gelişmiş Bilgisayar Görüşü Teknikleri

OCR doğruluğunu artırmak isteyen geliştiriciler için bu gelişmiş yaklaşımları değerlendirin:

Sıkça Sorulan Sorular

OCR'de Bilgisayarlı Görme nedir ve metin çıkarımını nasıl geliştirir?

IronOCR'de Bilgisayarlı Görme, OCR işleme öncesinde görüntülerde metin bölgelerini otomatik olarak algılamak için OpenCV algoritmalarını kullanır. Bu, Tesseract tanımayı yalnızca algılanan metin alanlarına odaklayarak, gürültülü, çok bölgeli ya da eğik metinlerin doğruluğunu önemli ölçüde artırır ve tüm görüntüleri işlememesi sağlanır.

C# dilinde Bilgisayarlı Görme OCR'yi hızlıca nasıl uygularım?

IronOCR, Bilgisayarlı Görme OCR'yi sadece bir satır kod ile uygulamanıza izin verir: IronTesseract'ı FindTextRegion() metodu ile kullanarak ana metin bölgesini otomatik olarak algılayın, ardından anında metin çıkarmak için .Read() çalıştırın.

Neden ayrı bir Bilgisayarlı Görme paketi yüklemem gerekiyor?

IronOCR, bilgisayarlı görme işlevselliği OpenCV algoritmalarından yararlandığı için ayrı bir IronOcr.ComputerVision NuGet paketine ihtiyaç duyar. Bu algoritmalar, metin algılama doğruluğunu önemli ölçüde artırır ve plaka tanıma ve pasaport tarama gibi özellikler için gereklidir.

Hangi platforma özgü Bilgisayarlı Görme paketini yüklemeliyim?

IronOCR, platforma özgü paketler sunar: Windows sistemler için IronOcr.ComputerVision.Windows, Linux dağıtımı için IronOcr.ComputerVision.Linux ve macOS ortamları için IronOcr.ComputerVision.MacOS.

Bir görüntüde birden fazla metin bölgesini nasıl tespit edebilirim?

IronOCR, algılanan metin bölgelerine göre orijinal görüntüyü birden fazla görüntüye ayırmak için FindMultipleTextRegions yöntemini sağlar. Ayrıca, metin algılanan kırpma alanlarının listesini almak için GetTextRegions'u kullanabilirsiniz.

İşlemden önce hangi metin bölgelerinin algılandığını doğrulayabilir miyim?

Evet, IronOCR, gerçek OCR sürecini çalıştırmadan önce bilgisayarlı görme algoritmaları tarafından algılanan metin bölgelerini kontrol etmenize olanak tanıyan StampCropRectangleAndSaveAs yöntemini içerir.

IronOCR mevcut uygulamalara entegre edilebilir mi?

IronOCR, C# kullanarak mevcut uygulamalara kolayca entegre edecek şekilde tasarlanmıştır, bu sayede geliştiriciler, yazılımlarına minimal çabayla OCR işlevselliği ekleyebilir.

IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?

IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.

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.

Curtis Chau
Teknik Yazar

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ı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.