# Get Started with OCR in C# and VB.NET
IronOCR, .NET platformu yazılım geliştiricilerinin görüntülerden ve PDF belgelerinden metinleri tanıyıp okumasına olanak tanıyan bir C# kütüphanesiidir. Bu, bilinen en gelişmiş Tesseract motorunu kullanan, tamamen .NET tabanlı bir OCR kütüphanesidir.
## Kurulum
### NuGet Paket Yöneticisi ile yükleyin
IronOCR'yi Visual Studio'ya veya NuGet Paket Yöneticisi ile komut satırından yükleyin. Visual Studio'da şu komutla konsola gidin:
- Araçlar ->
- NuGet Paket Yöneticisi ->
- Paket Yöneticisi Konsolu
```shell
:ProductInstall
```
Sürüm Güncellemeleri ve kurulum hakkında daha fazla bilgi için [NuGet'teki IronOCR'ye](https://www.nuget.org/packages/IronOcr) göz atın.
Farklı platformlar için kullanılabilen başka **IronOCR NuGet Paketleri** de mevcuttur:
- Windows: [https://www.nuget.org/packages/ironocr](https://www.nuget.org/packages/ironocr)
- Linux: [https://www.nuget.org/packages/ironocr.linux](https://www.nuget.org/packages/ironocr.linux)
- macOS: [https://www.nuget.org/packages/ironocr.macos](https://www.nuget.org/packages/ironocr.macos)
- macOS (ARM): [https://www.nuget.org/packages/ironocr.macos.arm](https://www.nuget.org/packages/ironocr.macos.arm)
### Linux ve macOS için IronOcr.Extensions.AdvancedScan
Bu paket, Linux ve Mac kullanan ve IronOCR'nin gelişmiş özelliklerinden de yararlanmak isteyen kullanıcılar içindir.
- Linux: https://www.nuget.org/packages/IronOcr.Extensions.AdvancedScan.Linux
- macOS: https://www.nuget.org/packages/IronOcr.Extensions.AdvancedScan.macOS
#### Sorun Giderme
Bu paketin yeni güncellemesiyle IronOCR, OpenCV bağımlılıklarını paket içinde birleştirerek paketi bu şekilde optimize eder; böylece, şu anda OpenCV bağımlılıklarını içe aktaran geliştiriciler aşağıdaki hatayı almazlar.
```txt
The type of namespace name `OpenCvSharp` could not be found(are you missing a using directive or an assembly reference)
```
OpenCV ad alanlarını güvenle kaldırabilirsiniz, sorun çözülecektir.
### IronOCR .ZIP dosyasını indirin
Alternatif olarak, IronOCR'yi ZIP dosyası olarak da indirebilirsiniz. [DLL dosyasını doğrudan indirmek](/csharp/ocr/packages/IronOcr.zip) için tıklayın. ZIP dosyasını indirdikten sonra:
#### .NET Framework 4.0+ Kurulum Talimatları:
- net40 klasöründeki IronOcr.dll dosyasını projenize ekleyin
- Ardından aşağıdakilere Assembly referansları ekleyin:
- System.Configuration
- System.Drawing
- System.Web
#### .NET Standard, .NET Core 2.0+ ve .NET 5 için talimatlar
- netstandard2.0 klasöründeki IronOcr.dll dosyasını projenize ekleyin
- Ardından, NuGet Paket Referansı'nı şuraya ekleyin:
- System.Drawing.Common 4.7 veya üstü
### IronOCR Yükleyicisini indirin (yalnızca Windows)
Diğer bir seçenek ise, IronOCR'nin kullanıma hazır olarak çalışması için gerekli tüm kaynakları yükleyen IronOCR yükleyicimizi indirmektir. Lütfen bu seçeneğin yalnızca Windows sistemleri için geçerli olduğunu unutmayın. Yükleyiciyi indirmek için lütfen [buraya tıklayın](/csharp/ocr/packages/IronOcrInstaller.zip). ZIP dosyasını indirdikten sonra:
#### .NET Framework 4.0+ Kurulum Talimatları:
- net40 klasöründeki IronOcr.dll dosyasını projenize ekleyin
- Ardından aşağıdakilere Assembly referansları ekleyin:
- System.Configuration
- System.Drawing
- System.Web
#### .NET Standard, .NET Core 2.0+ ve .NET 5 için talimatlar
- netstandard2.0 klasöründeki IronOcr.dll dosyasını projenize ekleyin
- Ardından, NuGet Paket Referansı'nı şuraya ekleyin:
- System.Drawing.Common 4.7 veya üstü
## Neden IronOCR'yi Seçmelisiniz?
IronOCR, kurulumu kolay, eksiksiz ve iyi belgelenmiş bir .NET yazılım kütüphanesiidir.
Harici web hizmetleri kullanmadan, sürekli ücret ödemeden veya internet üzerinden gizli belgeler göndermeden **%99,8'in üzerinde OCR doğruluğu** elde etmek için IronOCR'yi tercih edin.
### C# geliştiricileri neden Vanilla Tesseract yerine IronOCR'yi tercih ediyor?
- Tek bir DLL veya NuGet olarak yükleyin
- Tesseract 5, 4 ve 3 motorlarını kullanıma hazır olarak içerir.
- **%99,8'lik** doğruluk oranı, normal Tesseract'tan önemli ölçüde daha üstündür.
- Olağanüstü Hız ve Çoklu İş Parçacığı
- MVC, WebApp, Masaüstü, Konsol ve Sunucu Uygulamaları ile uyumlu
- Çalışmak için Exe veya C++ kodu gerekmez
- Tam PDF OCR desteği
- Hemen hemen her türlü Görüntü dosyası veya PDF üzerinde OCR işlemi gerçekleştirin
- Tam .NET Core, .NET Standard ve Framework desteği
- Windows, Mac, Linux, Azure, Docker, Lambda, AWS'de dağıtın
- BarCODE'ları ve QR kodlarını okuyun
- OCR sonuçlarını XHTML olarak dışa aktarın
- OCR'yi aranabilir PDF belgelerine aktarın
- Çoklu iş parçacığı desteği
- NuGet veya OcrData dosyaları aracılığıyla yönetilen 125 uluslararası dil
- Görüntüleri, koordinatları, istatistikleri ve yazı tiplerini ayıklayın. Sadece metin değil.
- Tesseract OCR'yi ticari ve özel uygulamalar içinde yeniden dağıtmak için kullanılabilir.
_IronOCR, gerçek dünya görüntüleriyle ve fotoğraflar gibi kusurlu belgelerle veya dijital gürültü veya kusurlar içerebilen düşük çözünürlüklü taramalarla çalışırken üstün performans gösterir._
Diğer .NET Tesseract API'leri ve web hizmetleri gibi .NET platformu için diğer [ücretsiz OCR](/csharp/ocr/use-case/free-ocr-csharp/) kütüphaneleri, bu gerçek dünya kullanım senaryolarında o kadar iyi performans göstermez.
## OCR with Tesseract 5 - Start Coding in C#
Aşağıdaki kod örneği, C# veya VB .NET kullanarak bir görüntüden metin okumanın ne kadar kolay olduğunu göstermektedir.
### OneLiner
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-1.cs
```
### Yapılandırılabilir Hello World
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-2.cs
```
### C# PDF OCR
Aynı yaklaşım, herhangi bir PDF belgesinden metin çıkarmak için de benzer şekilde kullanılabilir.
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-3.cs
```
### Çok Sayfalı TIFF'ler için OCR
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-4.cs
```
### BarCODE ve QR
IronOCR'nin benzersiz bir özelliği, metin taraması yaparken belgelerden BARCODE'ları ve QR kodlarını okuyabilmesidir. `OcrResult.OcrBarcode` sınıfının örnekleri, geliştiriciye taranan her bir BARCODE hakkında ayrıntılı bilgi verir.
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-5.cs
```
### Görüntülerin Belirli Alanlarında OCR
IronOCR'nin tüm tarama ve okuma yöntemleri, bir sayfanın veya sayfaların hangi bölümünden metin okumak istediğimizi tam olarak belirleme olanağı sunar. Bu, standart formlara baktığımızda çok yararlıdır ve çok fazla zaman kazandırabilir ve verimliliği artırabilir.
Kırpma bölgelerini kullanmak için, `System.Drawing.Rectangle` nesnesini kullanabilmemiz amacıyla `System.Drawing` öğesine bir sistem referansı eklememiz gerekecektir.
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-6.cs
```
### Düşük Kaliteli Taramalar için OCR
IronOCR `OcrInput` sınıfı, normal Tesseract'ın okuyamadığı taramaları düzeltebilir.
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-7.cs
```
### OCR sonuçlarını Aranabilir PDF olarak dışa aktarın
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-8.cs
```
### TIFF'ten aranabilir PDF'ye Dönüştürme
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-9.cs
```
### OCR sonuçlarını HTML olarak dışa aktar
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-10.cs
```
## OCR Görüntü İyileştirme Filtreleri
IronOCR, OCR performansını iyileştirmek için `OcrInput` nesnelerine özel filtreler sağlar.
### Görüntü İyileştirme Kod Örneği
```csharp
:path=/static-assets/ocr/content-code-examples/get-started/get-started-11.cs
```
### OCR Görüntü Filtreleri Listesi
IronOCR'ye entegre edilmiş, OCR performansını artıran giriş filtreleri şunlardır:
- `OcrInput.Rotate(double degrees)` - Görüntüleri saat yönünde belirli bir derece döndürür. Saat yönünün tersine döndürmek için negatif sayılar kullanın.
- `OcrInput.Binarize()` - Bu filtre, her pikseli ara tonlar olmadan siyah veya beyaza dönüştürür ve çok düşük kontrastlı görüntülerde OCR performansını potansiyel olarak iyileştirir.
- `OcrInput.ToGrayScale()` - Her pikseli gri tonlamaya dönüştürür. Doğruluğu artırmayabilir, ancak hızı artırabilir.
- `OcrInput.Contrast()` - Kontrastı otomatik olarak artırır, genellikle düşük kontrastlı taramalarda hızı ve doğruluğu iyileştirir.
- `OcrInput.DeNoise()` - Dijital gürültüyü giderir, yalnızca gürültü bekleniyorsa önerilir.
- `OcrInput.Invert()` - Her rengi tersine çevirir (beyaz siyah olur ve tersi).
- `OcrInput.Dilate()` - Morfolojiyi geliştirir, nesne sınırlarına pikseller ekler; Erode'nin tersi işlemdir.
- `OcrInput.Erode()` - Morfolojiyi geliştirir, nesne sınırlarından pikselleri kaldırır, Dilate'in tersidir.
- `OcrInput.Deskew()` - Bir görüntüyü doğru yönde olacak şekilde döndürür. Tesseract'ın eğrilik toleransı sınırlı olduğu için kullanışlıdır.
- `OcrInput.EnhanceResolution` - Düşük kaliteli görüntülerin çözünürlüğünü artırır. Bu ayar genellikle düşük DPI girişini otomatik olarak yönetmek için kullanılır.
- `EnhanceResolution` düşük çözünürlüklü görüntüleri (275 dpi'nin altında) algılar, bunları yükseltir ve daha iyi OCR sonuçları elde etmek için metni netleştirir. Zaman alıcı olsa da, genellikle genel OCR işlem süresini kısaltır.
- `Language` - 22 uluslararası dil paketinden seçim yapılmasını destekler.
- `Strategy` - Kelimelerin istatistiksel ilişkisine dayalı olarak hızlı ve daha az doğru veya gelişmiş (doğruluk için AI kullanan) stratejiler arasında seçim yapma imkanı sunar.
- `ColorSpace` - Gri tonlamalı veya renkli OCR seçeneğini belirleyin; Gri tonlama genellikle en uygun seçenektir, ancak belirli kontrast senaryolarında renkli baskı daha iyi sonuç verebilir.
- `DetectWhiteTextOnDarkBackgrounds` - Negatif görüntüler için ayarlama yapar, koyu arka planlarda beyaz metni otomatik olarak algılar ve okur.
- `InputImageType` - OCR kütüphanesine rehberlik eder ve tam bir belge üzerinde mi yoksa bir parça üzerinde mi çalıştığını belirtir.
- `RotateAndStraighten` - IronOCR'nin döndürülmüş veya perspektif bozulmalarından etkilenen belgeleri düzgün bir şekilde işlemesine olanak tanır.
- `ReadBarcodes` - Metin taramasıyla eşzamanlı olarak BARCODE'ları ve QR kodlarını önemli bir zaman kaybı olmadan otomatik olarak okur.
- `ColorDepth` - OCR işleminde renk derinliği için piksel başına bit sayısını belirler. Daha fazla ayrıntı, kaliteyi artırabilir ancak işleme süresini de uzatabilir.
## 125 Dil Paketi
IronOCR, DLL olarak dağıtılan dil paketleri aracılığıyla **125 uluslararası dili** destekler. Bu dil paketleri [bu web sitesinden](/csharp/ocr/languages/) veya [NuGet Paket Yöneticisi](https://www.nuget.org/packages?q=IronOcr.Languages)'nden indirilebilir.
Diller arasında Almanca, Fransızca, İngilizce, Çince, Japonca ve diğerleri bulunmaktadır. MRZ, MICR çekleri, finansal veriler, araç plakaları vb. için özel dil paketleri mevcuttur. Ayrıca, özel Tesseract ".traineddata" dosyaları da kullanılabilir.
### Dil Örneği
```csharp
// Reference to the path of the source file that demonstrates setting language packs for OCR
:path=/static-assets/ocr/content-code-examples/get-started/get-started-12.cs
```
### Çoklu Dil Örneği
Aynı anda birden fazla dil kullanarak OCR yapmak da mümkündür. Bu, Unicode belgelerindeki İngilizce meta verilerin ve URL'lerin OCR'sini iyileştirebilir.
```csharp
// Reference to the path of the source file that demonstrates multi-language OCR
:path=/static-assets/ocr/content-code-examples/get-started/get-started-13.cs
```
## Ayrıntılı OCR Sonuçları Nesneleri
IronOCR, her işlem için bir OCR sonuç nesnesi döndürür. Genellikle, geliştiriciler taranan metni almak için `Text` özelliğine erişir. Ancak, sonuç nesnesi çok daha ayrıntılı bilgiler içerir.
```csharp
// Reference to the path of the source file demonstrating detailed OCR result object usage
:path=/static-assets/ocr/content-code-examples/get-started/get-started-14.cs
```
## Performans
IronOCR, performans ayarlaması veya görüntü değişikliği gerektirmeden kullanıma hazırdır.
Hız inanılmaz: IronOCR.2020+, önceki sürümlerden 10 kata kadar daha hızlıdır ve %250'den fazla daha az hata yapar.
## Daha Fazla Bilgi
C#, VB, F# veya diğer .NET dillerinde OCR hakkında daha fazla bilgi edinmek için, IronOCR kullanımına ilişkin gerçek hayattan örnekler sunan ve kütüphaneyi optimize etmenin inceliklerini gösteren [topluluk eğitimlerimizi okuyun](/csharp/ocr/tutorials/how-to-read-text-from-an-image-in-csharp-net/).
[.NET geliştiricileri için](/csharp/ocr/object-reference/) eksiksiz bir [API Referansı](/csharp/ocr/object-reference/) da mevcuttur.
IronOCR, .NET platformu yazılım geliştiricilerinin görüntülerden ve PDF belgelerinden metinleri tanıyıp okumasına olanak tanıyan bir C# kütüphanesiidir. Bu, bilinen en gelişmiş Tesseract motorunu kullanan, tamamen .NET tabanlı bir OCR kütüphanesidir.
Kurulum
NuGet Paket Yöneticisi ile yükleyin
IronOCR'yi Visual Studio'ya veya NuGet Paket Yöneticisi ile komut satırından yükleyin. Visual Studio'da şu komutla konsola gidin:
Araçlar ->
NuGet Paket Yöneticisi ->
Paket Yöneticisi Konsolu
PM > Install-Package IronOcr
Install-Package IronOcr
Sürüm Güncellemeleri ve kurulum hakkında daha fazla bilgi için NuGet'teki IronOCR'ye göz atın.
Farklı platformlar için kullanılabilen başka IronOCR NuGet Paketleri de mevcuttur:
Bu paketin yeni güncellemesiyle IronOCR, OpenCV bağımlılıklarını paket içinde birleştirerek paketi bu şekilde optimize eder; böylece, şu anda OpenCV bağımlılıklarını içe aktaran geliştiriciler aşağıdaki hatayı almazlar.
The type of namespace name `OpenCvSharp` could not be found(are you missing a using directive or an assembly reference)
The type of namespace name `OpenCvSharp` could not be found(are you missing a using directive or an assembly reference)
Text
OpenCV ad alanlarını güvenle kaldırabilirsiniz, sorun çözülecektir.
IronOCR .ZIP dosyasını indirin
Alternatif olarak, IronOCR'yi ZIP dosyası olarak da indirebilirsiniz. DLL dosyasını doğrudan indirmek için tıklayın. ZIP dosyasını indirdikten sonra:
Ardından, NuGet Paket Referansı'nı şuraya ekleyin:
System.Drawing.Common 4.7 veya üstü
IronOCR Yükleyicisini indirin (yalnızca Windows)
Diğer bir seçenek ise, IronOCR'nin kullanıma hazır olarak çalışması için gerekli tüm kaynakları yükleyen IronOCR yükleyicimizi indirmektir. Lütfen bu seçeneğin yalnızca Windows sistemleri için geçerli olduğunu unutmayın. Yükleyiciyi indirmek için lütfen buraya tıklayın. ZIP dosyasını indirdikten sonra:
Ardından, NuGet Paket Referansı'nı şuraya ekleyin:
System.Drawing.Common 4.7 veya üstü
Neden IronOCR'yi Seçmelisiniz?
IronOCR, kurulumu kolay, eksiksiz ve iyi belgelenmiş bir .NET yazılım kütüphanesiidir.
Harici web hizmetleri kullanmadan, sürekli ücret ödemeden veya internet üzerinden gizli belgeler göndermeden %99,8'in üzerinde OCR doğruluğu elde etmek için IronOCR'yi tercih edin.
C# geliştiricileri neden Vanilla Tesseract yerine IronOCR'yi tercih ediyor?
Tek bir DLL veya NuGet olarak yükleyin
Tesseract 5, 4 ve 3 motorlarını kullanıma hazır olarak içerir.
%99,8'lik doğruluk oranı, normal Tesseract'tan önemli ölçüde daha üstündür.
Olağanüstü Hız ve Çoklu İş Parçacığı
MVC, WebApp, Masaüstü, Konsol ve Sunucu Uygulamaları ile uyumlu
Çalışmak için Exe veya C++ kodu gerekmez
Tam PDF OCR desteği
Hemen hemen her türlü Görüntü dosyası veya PDF üzerinde OCR işlemi gerçekleştirin
NuGet veya OcrData dosyaları aracılığıyla yönetilen 125 uluslararası dil
Görüntüleri, koordinatları, istatistikleri ve yazı tiplerini ayıklayın. Sadece metin değil.
Tesseract OCR'yi ticari ve özel uygulamalar içinde yeniden dağıtmak için kullanılabilir.
IronOCR, gerçek dünya görüntüleriyle ve fotoğraflar gibi kusurlu belgelerle veya dijital gürültü veya kusurlar içerebilen düşük çözünürlüklü taramalarla çalışırken üstün performans gösterir.
Diğer .NET Tesseract API'leri ve web hizmetleri gibi .NET platformu için diğer ücretsiz OCR kütüphaneleri, bu gerçek dünya kullanım senaryolarında o kadar iyi performans göstermez.
OCR with Tesseract 5 - Start Coding in C#
Aşağıdaki kod örneği, C# veya VB .NET kullanarak bir görüntüden metin okumanın ne kadar kolay olduğunu göstermektedir.
OneLiner
stringText = new IronTesseract().Read(@"img\Screenshot.png").Text;
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
DimTextAsString = (New IronTesseract()).Read("img\Screenshot.png").Text
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
Yapılandırılabilir Hello World
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();// Add multiple imagesinput.LoadImage("images/sample.jpeg");OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
// Add multiple images
input.LoadImage("images/sample.jpeg");
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusing' Add multiple imagesinput.LoadImage("images/sample.jpeg")Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
' Add multiple images
input.LoadImage("images/sample.jpeg")
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
C# PDF OCR
Aynı yaklaşım, herhangi bir PDF belgesinden metin çıkarmak için de benzer şekilde kullanılabilir.
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();// We can also select specific PDF page numbers to OCRinput.LoadPdf("example.pdf", Password: "password");OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);// 1 page for every page of the PDFConsole.WriteLine($"{result.Pages.Length} Pages");
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
// We can also select specific PDF page numbers to OCR
input.LoadPdf("example.pdf", Password: "password");
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
// 1 page for every page of the PDF
Console.WriteLine($"{result.Pages.Length} Pages");
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusing' We can also select specific PDF page numbers to OCRinput.LoadPdf("example.pdf", Password:= "password")Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)' 1 page for every page of the PDFConsole.WriteLine($"{result.Pages.Length} Pages")
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
' We can also select specific PDF page numbers to OCR
input.LoadPdf("example.pdf", Password:= "password")
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
' 1 page for every page of the PDF
Console.WriteLine($"{result.Pages.Length} Pages")
Çok Sayfalı TIFF'ler için OCR
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();var pageindices = new int[] { 1, 2 };input.LoadImageFrames("multi-frame.tiff", pageindices);OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("multi-frame.tiff", pageindices);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusingPrivate pageindices = New Integer() { 1, 2 }input.LoadImageFrames("multi-frame.tiff", pageindices)Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("multi-frame.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
BarCODE ve QR
IronOCR'nin benzersiz bir özelliği, metin taraması yaparken belgelerden BARCODE'ları ve QR kodlarını okuyabilmesidir. OcrResult.OcrBarcode sınıfının örnekleri, geliştiriciye taranan her bir BARCODE hakkında ayrıntılı bilgi verir.
using IronOcr;IronTesseract ocr = new IronTesseract();ocr.Configuration.ReadBarCodes = true;using OcrInput input = new OcrInput();input.LoadImage("img/Barcode.png");OcrResultResult = ocr.Read(input);foreach (varBarcodeinResult.Barcodes){ // type and location properties also exposedConsole.WriteLine(Barcode.Value);}
using IronOcr;
IronTesseract ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using OcrInput input = new OcrInput();
input.LoadImage("img/Barcode.png");
OcrResult Result = ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
// type and location properties also exposed
Console.WriteLine(Barcode.Value);
}
ImportsIronOcrPrivate ocr As New IronTesseract()ocr.Configuration.ReadBarCodes = TrueUsing input As New OcrInput() input.LoadImage("img/Barcode.png") DimResultAsOcrResult = ocr.Read(input) For EachBarcodeInResult.Barcodes ' type and location properties also exposedConsole.WriteLine(Barcode.Value) NextBarcodeEndUsing
Imports IronOcr
Private ocr As New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
input.LoadImage("img/Barcode.png")
Dim Result As OcrResult = ocr.Read(input)
For Each Barcode In Result.Barcodes
' type and location properties also exposed
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
Görüntülerin Belirli Alanlarında OCR
IronOCR'nin tüm tarama ve okuma yöntemleri, bir sayfanın veya sayfaların hangi bölümünden metin okumak istediğimizi tam olarak belirleme olanağı sunar. Bu, standart formlara baktığımızda çok yararlıdır ve çok fazla zaman kazandırabilir ve verimliliği artırabilir.
Kırpma bölgelerini kullanmak için, System.Drawing.Rectangle nesnesini kullanabilmemiz amacıyla System.Drawing öğesine bir sistem referansı eklememiz gerekecektir.
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();// Dimensions are in pixelvar contentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };input.LoadImage("document.png", contentArea);OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
// Dimensions are in pixel
var contentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
input.LoadImage("document.png", contentArea);
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusing' Dimensions are in pixelPrivate contentArea = New System.Drawing.Rectangle() With { .X = 215, .Y = 1250, .Height = 280, .Width = 1335}input.LoadImage("document.png", contentArea)Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
' Dimensions are in pixel
Private contentArea = New System.Drawing.Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
input.LoadImage("document.png", contentArea)
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
Düşük Kaliteli Taramalar için OCR
IronOCR OcrInput sınıfı, normal Tesseract'ın okuyamadığı taramaları düzeltebilir.
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();var pageindices = new int[] { 1, 2 };input.LoadImageFrames(@"img\Potter.tiff", pageindices);// fixes digital noise and poor scanninginput.DeNoise();// fixes rotation and perspectiveinput.Deskew();OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\Potter.tiff", pageindices);
// fixes digital noise and poor scanning
input.DeNoise();
// fixes rotation and perspective
input.Deskew();
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusingPrivate pageindices = New Integer() { 1, 2 }input.LoadImageFrames("img\Potter.tiff", pageindices)' fixes digital noise and poor scanninginput.DeNoise()' fixes rotation and perspectiveinput.Deskew()Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\Potter.tiff", pageindices)
' fixes digital noise and poor scanning
input.DeNoise()
' fixes rotation and perspective
input.Deskew()
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
OCR sonuçlarını Aranabilir PDF olarak dışa aktarın
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();input.Title = "Quarterly Report";input.LoadImage("image1.jpeg");input.LoadImage("image2.png");var pageindices = new int[] { 1, 2 };input.LoadImageFrames("image3.gif", pageindices);OcrResult result = ocr.Read(input);result.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Quarterly Report";
input.LoadImage("image1.jpeg");
input.LoadImage("image2.png");
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("image3.gif", pageindices);
OcrResult result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable.pdf");
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusinginput.Title = "Quarterly Report"input.LoadImage("image1.jpeg")input.LoadImage("image2.png")Dim pageindices = New Integer() { 1, 2 }input.LoadImageFrames("image3.gif", pageindices)Dim result AsOcrResult = ocr.Read(input)result.SaveAsSearchablePdf("searchable.pdf")
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Quarterly Report"
input.LoadImage("image1.jpeg")
input.LoadImage("image2.png")
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("image3.gif", pageindices)
Dim result As OcrResult = ocr.Read(input)
result.SaveAsSearchablePdf("searchable.pdf")
TIFF'ten aranabilir PDF'ye Dönüştürme
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();var pageindices = new int[] { 1, 2 };input.LoadImageFrames("example.tiff", pageindices);ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("example.tiff", pageindices);
ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusingPrivate pageindices = New Integer() { 1, 2 }input.LoadImageFrames("example.tiff", pageindices)ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
Private pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("example.tiff", pageindices)
ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
OCR sonuçlarını HTML olarak dışa aktar
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();input.Title = "Html Title";input.LoadImage("image1.jpeg");OcrResultResult = ocr.Read(input);Result.SaveAsHocrFile("results.html");
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.Title = "Html Title";
input.LoadImage("image1.jpeg");
OcrResult Result = ocr.Read(input);
Result.SaveAsHocrFile("results.html");
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusinginput.Title = "Html Title"input.LoadImage("image1.jpeg")DimResultAsOcrResult = ocr.Read(input)Result.SaveAsHocrFile("results.html")
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.Title = "Html Title"
input.LoadImage("image1.jpeg")
Dim Result As OcrResult = ocr.Read(input)
Result.SaveAsHocrFile("results.html")
OCR Görüntü İyileştirme Filtreleri
IronOCR, OCR performansını iyileştirmek için OcrInput nesnelerine özel filtreler sağlar.
Görüntü İyileştirme Kod Örneği
using IronOcr;IronTesseract ocr = new IronTesseract();using OcrInput input = new OcrInput();input.LoadImage("LowQuality.jpeg");// fixes digital noise and poor scanninginput.DeNoise();// fixes rotation and perspectiveinput.Deskew();OcrResult result = ocr.Read(input);Console.WriteLine(result.Text);
using IronOcr;
IronTesseract ocr = new IronTesseract();
using OcrInput input = new OcrInput();
input.LoadImage("LowQuality.jpeg");
// fixes digital noise and poor scanning
input.DeNoise();
// fixes rotation and perspective
input.Deskew();
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
ImportsIronOcrPrivate ocr As New IronTesseract()PrivateOcrInputAsusinginput.LoadImage("LowQuality.jpeg")' fixes digital noise and poor scanninginput.DeNoise()' fixes rotation and perspectiveinput.Deskew()Dim result AsOcrResult = ocr.Read(input)Console.WriteLine(result.Text)
Imports IronOcr
Private ocr As New IronTesseract()
Private OcrInput As using
input.LoadImage("LowQuality.jpeg")
' fixes digital noise and poor scanning
input.DeNoise()
' fixes rotation and perspective
input.Deskew()
Dim result As OcrResult = ocr.Read(input)
Console.WriteLine(result.Text)
OCR Görüntü Filtreleri Listesi
IronOCR'ye entegre edilmiş, OCR performansını artıran giriş filtreleri şunlardır:
OcrInput.Rotate(double degrees) - Görüntüleri saat yönünde belirli bir derece döndürür. Saat yönünün tersine döndürmek için negatif sayılar kullanın.
OcrInput.Binarize() - Bu filtre, her pikseli ara tonlar olmadan siyah veya beyaza dönüştürür ve çok düşük kontrastlı görüntülerde OCR performansını potansiyel olarak iyileştirir.
OcrInput.ToGrayScale() - Her pikseli gri tonlamaya dönüştürür. Doğruluğu artırmayabilir, ancak hızı artırabilir.
OcrInput.Contrast() - Kontrastı otomatik olarak artırır, genellikle düşük kontrastlı taramalarda hızı ve doğruluğu iyileştirir.
OcrInput.DeNoise() - Dijital gürültüyü giderir, yalnızca gürültü bekleniyorsa önerilir.
OcrInput.Invert() - Her rengi tersine çevirir (beyaz siyah olur ve tersi).
OcrInput.Deskew() - Bir görüntüyü doğru yönde olacak şekilde döndürür. Tesseract'ın eğrilik toleransı sınırlı olduğu için kullanışlıdır.
OcrInput.EnhanceResolution - Düşük kaliteli görüntülerin çözünürlüğünü artırır. Bu ayar genellikle düşük DPI girişini otomatik olarak yönetmek için kullanılır.
EnhanceResolution düşük çözünürlüklü görüntüleri (275 dpi'nin altında) algılar, bunları yükseltir ve daha iyi OCR sonuçları elde etmek için metni netleştirir. Zaman alıcı olsa da, genellikle genel OCR işlem süresini kısaltır.
Language - 22 uluslararası dil paketinden seçim yapılmasını destekler.
Strategy - Kelimelerin istatistiksel ilişkisine dayalı olarak hızlı ve daha az doğru veya gelişmiş (doğruluk için AI kullanan) stratejiler arasında seçim yapma imkanı sunar.
ColorSpace - Gri tonlamalı veya renkli OCR seçeneğini belirleyin; Gri tonlama genellikle en uygun seçenektir, ancak belirli kontrast senaryolarında renkli baskı daha iyi sonuç verebilir.
DetectWhiteTextOnDarkBackgrounds - Negatif görüntüler için ayarlama yapar, koyu arka planlarda beyaz metni otomatik olarak algılar ve okur.
InputImageType - OCR kütüphanesine rehberlik eder ve tam bir belge üzerinde mi yoksa bir parça üzerinde mi çalıştığını belirtir.
RotateAndStraighten - IronOCR'nin döndürülmüş veya perspektif bozulmalarından etkilenen belgeleri düzgün bir şekilde işlemesine olanak tanır.
ReadBarcodes - Metin taramasıyla eşzamanlı olarak BARCODE'ları ve QR kodlarını önemli bir zaman kaybı olmadan otomatik olarak okur.
ColorDepth - OCR işleminde renk derinliği için piksel başına bit sayısını belirler. Daha fazla ayrıntı, kaliteyi artırabilir ancak işleme süresini de uzatabilir.
125 Dil Paketi
IronOCR, DLL olarak dağıtılan dil paketleri aracılığıyla 125 uluslararası dili destekler. Bu dil paketleri bu web sitesinden veya NuGet Paket Yöneticisi'nden indirilebilir.
Diller arasında Almanca, Fransızca, İngilizce, Çince, Japonca ve diğerleri bulunmaktadır. MRZ, MICR çekleri, finansal veriler, araç plakaları vb. için özel dil paketleri mevcuttur. Ayrıca, özel Tesseract ".traineddata" dosyaları da kullanılabilir.
Dil Örneği
using IronOcr;// PM> Install IronOcr.Languages.ArabicIronTesseract ocr = new IronTesseract();ocr.Language = OcrLanguage.Arabic;using OcrInput input = new OcrInput();var pageindices = new int[] { 1, 2 };input.LoadImageFrames("img/arabic.gif", pageindices);// Add image filters if needed// In this case, even thought input is very low quality// IronTesseract can read what conventional Tesseract cannot.OcrResult result = ocr.Read(input);// Console can't print Arabic on Windows easily.// Let's save to disk instead.result.SaveAsTextFile("arabic.txt");
using IronOcr;
// PM> Install IronOcr.Languages.Arabic
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.Arabic;
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames("img/arabic.gif", pageindices);
// Add image filters if needed
// In this case, even thought input is very low quality
// IronTesseract can read what conventional Tesseract cannot.
OcrResult result = ocr.Read(input);
// Console can't print Arabic on Windows easily.
// Let's save to disk instead.
result.SaveAsTextFile("arabic.txt");
ImportsIronOcr' PM> Install IronOcr.Languages.ArabicPrivate ocr As New IronTesseract()ocr.Language = OcrLanguage.ArabicUsing input As New OcrInput() Dim pageindices = New Integer() { 1, 2 } input.LoadImageFrames("img/arabic.gif", pageindices) ' Add image filters if needed ' In this case, even thought input is very low quality ' IronTesseract can read what conventional Tesseract cannot. Dim result AsOcrResult = ocr.Read(input) ' Console can't print Arabic on Windows easily. ' Let's save to disk instead. result.SaveAsTextFile("arabic.txt")EndUsing
Imports IronOcr
' PM> Install IronOcr.Languages.Arabic
Private ocr As New IronTesseract()
ocr.Language = OcrLanguage.Arabic
Using input As New OcrInput()
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img/arabic.gif", pageindices)
' Add image filters if needed
' In this case, even thought input is very low quality
' IronTesseract can read what conventional Tesseract cannot.
Dim result As OcrResult = ocr.Read(input)
' Console can't print Arabic on Windows easily.
' Let's save to disk instead.
result.SaveAsTextFile("arabic.txt")
End Using
Çoklu Dil Örneği
Aynı anda birden fazla dil kullanarak OCR yapmak da mümkündür. Bu, Unicode belgelerindeki İngilizce meta verilerin ve URL'lerin OCR'sini iyileştirebilir.
using IronOcr;// PM> Install IronOcr.Languages.ChineseSimplifiedIronTesseract ocr = new IronTesseract();ocr.Language = OcrLanguage.ChineseSimplified;// We can add any number of languagesocr.AddSecondaryLanguage(OcrLanguage.English);using OcrInput input = new OcrInput();input.LoadPdf("multi-language.pdf");OcrResult result = ocr.Read(input);result.SaveAsTextFile("results.txt");
using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.ChineseSimplified;
// We can add any number of languages
ocr.AddSecondaryLanguage(OcrLanguage.English);
using OcrInput input = new OcrInput();
input.LoadPdf("multi-language.pdf");
OcrResult result = ocr.Read(input);
result.SaveAsTextFile("results.txt");
ImportsIronOcr' PM> Install IronOcr.Languages.ChineseSimplifiedPrivate ocr As New IronTesseract()ocr.Language = OcrLanguage.ChineseSimplified' We can add any number of languagesocr.AddSecondaryLanguage(OcrLanguage.English)Using input As New OcrInput() input.LoadPdf("multi-language.pdf") Dim result AsOcrResult = ocr.Read(input) result.SaveAsTextFile("results.txt")EndUsing
Imports IronOcr
' PM> Install IronOcr.Languages.ChineseSimplified
Private ocr As New IronTesseract()
ocr.Language = OcrLanguage.ChineseSimplified
' We can add any number of languages
ocr.AddSecondaryLanguage(OcrLanguage.English)
Using input As New OcrInput()
input.LoadPdf("multi-language.pdf")
Dim result As OcrResult = ocr.Read(input)
result.SaveAsTextFile("results.txt")
End Using
Ayrıntılı OCR Sonuçları Nesneleri
IronOCR, her işlem için bir OCR sonuç nesnesi döndürür. Genellikle, geliştiriciler taranan metni almak için Text özelliğine erişir. Ancak, sonuç nesnesi çok daha ayrıntılı bilgiler içerir.
using IronOcr;IronTesseract ocr = new IronTesseract();// Must be set to true to read barcodeocr.Configuration.ReadBarCodes = true;using OcrInput input = new OcrInput();var pageindices = new int[] { 1, 2 };input.LoadImageFrames(@"img\sample.tiff", pageindices);OcrResult result = ocr.Read(input);var pages = result.Pages;var words = pages[0].Words;var barcodes = result.Barcodes;// Explore here to find a massive, detailed API:// - Pages, Blocks, Paraphaphs, Lines, Words, Chars// - Image Export, Fonts Coordinates, Statistical Data, Tables
using IronOcr;
IronTesseract ocr = new IronTesseract();
// Must be set to true to read barcode
ocr.Configuration.ReadBarCodes = true;
using OcrInput input = new OcrInput();
var pageindices = new int[] { 1, 2 };
input.LoadImageFrames(@"img\sample.tiff", pageindices);
OcrResult result = ocr.Read(input);
var pages = result.Pages;
var words = pages[0].Words;
var barcodes = result.Barcodes;
// Explore here to find a massive, detailed API:
// - Pages, Blocks, Paraphaphs, Lines, Words, Chars
// - Image Export, Fonts Coordinates, Statistical Data, Tables
ImportsIronOcrPrivate ocr As New IronTesseract()' Must be set to true to read barcodeocr.Configuration.ReadBarCodes = TrueUsing input As New OcrInput() Dim pageindices = New Integer() { 1, 2 } input.LoadImageFrames("img\sample.tiff", pageindices) Dim result AsOcrResult = ocr.Read(input) Dim pages = result.Pages Dim words = pages(0).Words Dim barcodes = result.Barcodes ' Explore here to find a massive, detailed API: ' - Pages, Blocks, Paraphaphs, Lines, Words, Chars ' - Image Export, Fonts Coordinates, Statistical Data, TablesEndUsing
Imports IronOcr
Private ocr As New IronTesseract()
' Must be set to true to read barcode
ocr.Configuration.ReadBarCodes = True
Using input As New OcrInput()
Dim pageindices = New Integer() { 1, 2 }
input.LoadImageFrames("img\sample.tiff", pageindices)
Dim result As OcrResult = ocr.Read(input)
Dim pages = result.Pages
Dim words = pages(0).Words
Dim barcodes = result.Barcodes
' Explore here to find a massive, detailed API:
' - Pages, Blocks, Paraphaphs, Lines, Words, Chars
' - Image Export, Fonts Coordinates, Statistical Data, Tables
End Using
Performans
IronOCR, performans ayarlaması veya görüntü değişikliği gerektirmeden kullanıma hazırdır.
Hız inanılmaz: IronOCR.2020+, önceki sürümlerden 10 kata kadar daha hızlıdır ve %250'den fazla daha az hata yapar.
Daha Fazla Bilgi
C#, VB, F# veya diğer .NET dillerinde OCR hakkında daha fazla bilgi edinmek için, IronOCR kullanımına ilişkin gerçek hayattan örnekler sunan ve kütüphaneyi optimize etmenin inceliklerini gösteren topluluk eğitimlerimizi okuyun.
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.