České OCR v C# a .NET
Další verze tohoto dokumentu:
IronOCR je softwarová součást C#, která umožňuje kodérům .NET číst text z obrázků a dokumentů PDF ve 126 jazycích, včetně češtiny.
Jedná se o vyspělou vidlici Tesseractu, postavenou výhradně pro vývojáře .NET a pravidelně překonává ostatní motory Tesseract z hlediska rychlosti i přesnosti.
Obsah jazyků IronOcr.Czech
Tento balíček obsahuje 40 jazyků OCR pro .NET:
- čeština
- CzechBest
- CzechFast
Stažení
Český jazykový balíček [čeština]
Instalace
První věcí, kterou musíme udělat, je nainstalovat náš český balíček OCR do vašeho projektu .NET.
Příklad kódu
Tento příklad kódu v C# čte český text z obrázku nebo dokumentu PDF.
// PM> Install-Package IronOcr.Languages.Czech
using IronOcr;
var Ocr = new IronTesseract();
// Set the language to Czech
Ocr.Language = OcrLanguage.Czech;
// Use a using statement to manage resource cleanup
using (var Input = new OcrInput(@"images\Czech.png"))
{
// Perform OCR
var Result = Ocr.Read(Input);
// Get the OCR result as text
var AllText = Result.Text;
}' PM> Install-Package IronOcr.Languages.Czech
Imports IronOcr
Private Ocr = New IronTesseract()
' Set the language to Czech
Ocr.Language = OcrLanguage.Czech
' Use a using statement to manage resource cleanup
Using Input = New OcrInput("images\Czech.png")
' Perform OCR
Dim Result = Ocr.Read(Input)
' Get the OCR result as text
Dim AllText = Result.Text
End UsingProč zvolit IronOCR?
IronOCR je snadno instalovatelná, kompletní a dobře zdokumentovaná softwarová knihovna .NET.
Zvolte IronOCR, abyste dosáhli přesnosti 99,8% + OCR bez použití jakýchkoli externích webových služeb, průběžných poplatků nebo zasílání důvěrných dokumentů přes internet.
Proč si vývojáři v C# zvolili IronOCR před Vanilla Tesseract:
- Nainstalujte jako jednu knihovnu DLL nebo NuGet
- Obsahuje motory Tesseract 5, 4, a 3
- Přesnost 99,8% výrazně překonává běžný Tesseract
- Vysoká rychlost a podpora více vláken
- Kompatibilita s MVC, WebApp, Desktop, Console a Server aplikací
- Žádné Exes nebo C++ kód pro provoz
- Plná podpora OCR PDF
- Schopnost provádět OCR na téměř jakýkoli obrazový soubor nebo PDF
- Podpora pro .NET Core, Standard, a Framework
- Nasazení na Windows, Mac, Linux, Azure, Docker, Lambda, AWS
- Přečtěte si čárové kódy a QR kódy
- Exportujte OCR jako XHTML
- Exportujte OCR do prohledávatelných dokumentů PDF
- Podpora více vláken
- 126 mezinárodních jazyků, všechny dostupné přes NuGet nebo OcrData soubory
- Extrahujte obrázky, souřadnice, statistiky, a písma - ne jen text
- Lze použít k redistribuci Tesseract OCR v komerčních a proprietárních aplikacích.
IronOCR svítí, když pracujete s reálnými obrázky a nedokonalými dokumenty, jako jsou fotografie nebo skeny s nízkým rozlišením, které mohou mít digitální šum nebo nedokonalosti.
Jiné bezplatné OCR knihovny pro platformu .NET, jako jsou další rozhraní API a webové služby .NET Tesseract, v těchto případech v reálném světě nefungují tak dobře.
OCR s Tesseract 5 - Spusťte kódování v C#
Ukázka kódu níže ukazuje, jak snadné je číst text z obrázku pomocí C# nebo VB .NET.
OneLiner
// Read text using IronTesseract
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;' Read text using IronTesseract
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").TextKonfigurovatelný Hello World
// PM> Install-Package IronOcr.Languages.Czech
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
Input.AddImage("images/sample.jpeg");
// You can add any number of images
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Imports IronOcr
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
Input.AddImage("images/sample.jpeg")
' You can add any number of images
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingC# PDF OCR
Stejný přístup lze použít k extrakci textu z libovolného dokumentu PDF.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var input = new OcrInput())
{
input.AddPdf("example.pdf", "password");
// We can also select specific PDF page numbers for OCR
var Result = Ocr.Read(input);
Console.WriteLine(Result.Text);
Console.WriteLine($"{Result.Pages.Count()} Pages");
// 1 page for each PDF page
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using input = New OcrInput()
input.AddPdf("example.pdf", "password")
' We can also select specific PDF page numbers for OCR
Dim Result = Ocr.Read(input)
Console.WriteLine(Result.Text)
Console.WriteLine($"{Result.Pages.Count()} Pages")
' 1 page for each PDF page
End UsingOCR pro vícestránkové soubory TIFF
OCR čtení formátu souboru TIFF včetně vícestránkových dokumentů. TIFF lze také převést přímo do souboru PDF s prohledávatelným textem.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("multi-frame.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
Input.AddMultiFrameTiff("multi-frame.tiff")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingČárové kódy a QR
Jedinečnou vlastností aplikace IronOCR je, že dokáže číst čárové kódy a QR kódy z dokumentů během skenování textu. Instance třídy OcrResult.OcrBarcode poskytují vývojáři podrobné informace o každém naskenovaném čárovém kódu.
// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
input.AddImage("img/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
// Type and location properties also exposed
}
}' using IronOcr;
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("img/Barcode.png")
Dim Result = Ocr.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
' Type and location properties also exposed
Next Barcode
End UsingOCR na konkrétní oblasti obrázků
Všechny metody skenování a čtení aplikace IronOCR umožňují přesně určit, ze které části stránky nebo stránek chceme text číst. To je velmi užitečné, když se pracuje se standardizovanými formuláři a může ušetřit spoustu času a zlepšit efektivitu.
Chcete-li použít oblasti oříznutí, budete muset přidat odkaz na System.Drawing, abyste mohli použít objekt System.Drawing.Rectangle.
using IronOcr;
using System.Drawing; // Required for Rectangle
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
// Define area in pixels
var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Imports IronOcr
Imports System.Drawing ' Required for Rectangle
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
' Define area in pixels
Dim ContentArea = New Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
Input.Add("document.png", ContentArea)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingOCR pro skenování nízké kvality
Třída IronOCR OcrInput může opravit skenování, které normální Tesseract neumí přečíst.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
Input.DeNoise(); // Fixes digital noise and poor scans
Input.Deskew(); // Corrects rotation and perspective
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput("img\Potter.LowQuality.tiff")
Input.DeNoise() ' Fixes digital noise and poor scans
Input.Deskew() ' Corrects rotation and perspective
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingExportujte výsledky OCR jako prohledávatelné PDF
Obrázek do PDF s kopírovatelnými textovými řetězci. Lze indexovat pomocí vyhledávačů a databází.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
Input.Title = "Quarterly Report";
Input.AddImage("image1.jpeg");
Input.AddImage("image2.png");
Input.AddImage("image3.gif");
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
Input.Title = "Quarterly Report"
Input.AddImage("image1.jpeg")
Input.AddImage("image2.png")
Input.AddImage("image3.gif")
Dim Result = Ocr.Read(Input)
Result.SaveAsSearchablePdf("searchable.pdf")
End UsingPřevod TIFF na prohledávatelný PDF
Převeďte dokument TIFF (nebo jakoukoli skupinu obrazových souborů) přímo do prohledávatelného PDF, který lze indexovat pomocí intranetových, webových a vyhledávacích strojů Google.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("example.tiff");
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
Input.AddMultiFrameTiff("example.tiff")
Dim Result = Ocr.Read(Input)
Result.SaveAsSearchablePdf("searchable.pdf")
End UsingExportujte výsledky OCR jako HTML
Převod obrazu z OCR na XHTML.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput())
{
Input.Title = "Html Title";
Input.AddImage("image1.jpeg");
var Result = Ocr.Read(Input);
Result.SaveAsHocrFile("results.html");
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput()
Input.Title = "Html Title"
Input.AddImage("image1.jpeg")
Dim Result = Ocr.Read(Input)
Result.SaveAsHocrFile("results.html")
End UsingFiltry pro vylepšení obrazu OCR
IronOCR poskytuje jedinečné filtry pro objekty OcrInput pro zlepšení výkonu OCR.
Příklad kódu pro vylepšení obrazu
Zvyšuje kvalitu vstupních obrazů OCR a zajišťuje lepší a rychlejší výsledky OCR.
using IronOcr;
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
Input.DeNoise(); // Fixes digital noise
Input.Deskew(); // Corrects rotation
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Imports IronOcr
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Using Input = New OcrInput("LowQuality.jpeg")
Input.DeNoise() ' Fixes digital noise
Input.Deskew() ' Corrects rotation
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingSeznam obrazových filtrů OCR
Vstupní filtry pro zvýšení výkonu OCR, které jsou součástí IronOCR, zahrnují:
- OcrInput.Rotate (degrees) - Otočí obrázky o několik stupňů ve směru hodinových ručiček. Proti směru hodinových ručiček použijte záporná čísla.
- OcrInput.Binarize () - Tento obrazový filtr změní každý pixel na černou nebo bílou bez jakékoli střední cesty. Může zlepšit případy výkonu OCR s velmi nízkým kontrastem textu na pozadí.
- OcrInput.ToGrayScale () - Tento obrazový filtr změní každý pixel na odstín šedé. Je nepravděpodobné, že by zlepšila přesnost OCR, ale může zlepšit rychlost.
- OcrInput.Contrast () - automaticky zvyšuje kontrast. Tento filtr často zlepšuje rychlost a přesnost OCR při skenování s nízkým kontrastem.
- OcrInput.DeNoise () - Odstraní digitální šum. Tento filtr by měl být použit pouze tam, kde se očekává hluk.
- OcrInput.Invert () - Invertuje každou barvu. Např. Bílá zčerná: černá zbělá.
- OcrInput.Dilate () - Advanced Morfhology. Dilatace přidává pixely na hranice objektů v obraze. Naproti Erode.
- OcrInput.Erode () - Advanced Morfhology. Eroze odstraní pixely na hranicích objektů. Naproti Dilate.
- OcrInput.Deskew () - Otočí obrázek tak, aby byl správně orientován. To je pro OCR velmi užitečné, protože tolerance Tesseractu pro šikmé skenování může být až 5 stupňů.
- OcrInput.DeepCleanBackgroundNoise () - těžké odstranění šumu na pozadí. Tento filtr použijte pouze v případě, že je znám extrémní hluk pozadí dokumentu, protože tento filtr také riskuje snížení přesnosti OCR čistých dokumentů a je velmi nákladný na procesor.
- OcrInput.EnhanceResolution - Vylepšuje rozlišení obrázků nízké kvality. Tento filtr není často nutný, protože OcrInput.MinimumDPI a OcrInput.TargetDPI automaticky zachytí a vyřeší vstupy s nízkým rozlišením.
CleanBackgroundNoise - Toto nastavení umožňuje knihovně automaticky čistit digitální šum, zmačkané papíry a další nedokonalosti digitálního obrazu, které by jinak znemožňovaly čtení jiných knihoven OCR.
EnhanceContrast - Způsobí, že aplikace IronOCR automaticky zvyšuje kontrast textu oproti obrazu pozadí, zvyšuje přesnost OCR.
EnhanceResolution - Automaticky detekuje obrázky s nízkým rozlišením a automaticky zlepšuje obrazovou kvalitu.
Jazyk - IronOCR podporuje 22 jazykových balíků. Nastavení jazyka lze použít k výběru jazyků pro OCR.
Strategy - Můžeme zvolit rychlé a méně přesné skenování nebo pokročilé skenování s AI zpracováním.
ColorSpace - Nastavení OCR v odstínech šedi nebo barvě. Obecně nejlepší volbou jsou odstíny šedé.
DetectWhiteTextOnDarkBackgrounds - Automaticky detekuje negativy nebo tmavé stránky s bílým textem.
InputImageType - Nastavení pro určení celého dokumentu nebo úryvku (např. snímek obrazovky).
RotateAndStraighten - Umožňuje IronOCR číst také skloněné dokumenty.
ReadBarcodes - Funkce, která umožňuje aplikaci IronOCR automaticky číst čárové kódy a QR kódy v průběhu OCR.
Barevná hloubka - Kolik bitů na pixel bude použito. Vyšší může zvýšit kvalitu OCR.
126 jazykových balíčků
IronOCR podporuje 126 mezinárodních jazyků přes jazykové balíčky, které jsou distribuovány jako DLLs ke stažení z tohoto webu nebo z NuGet.
Jazyky zahrnují němčinu, francouzštinu, angličtinu, čínštinu, japonštinu a mnoho dalších. Existují speciální jazykové sady pro pasové MRZ, kontroly MICR, poznávací značky a mnoho dalších. Můžete také použít libovolný soubor Tesseract „.traineddata“ - včetně těch, které sami vytvoříte.
Příklad jazyka
Používání dalších jazyků OCR.
// using IronOcr;
// PM> Install IronOcr.Languages.Arabic
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;
using (var input = new OcrInput())
{
input.AddImage("img/arabic.gif");
// V případě potřeby přidejte obrazové filtry
// V tomto případě je vstup velmi nízké kvality
// IronTesseract dokáže přečíst, co běžný Tesseract neumí.
var Result = Ocr.Read(input);
// Console nemůže snadno tisknout arabštinu na Windows.
// Místo toho uložte na disk.
Result.SaveAsTextFile("arabic.txt");
}' using IronOcr;
' PM> Install IronOcr.Languages.Arabic
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Arabic
Using input = New OcrInput()
input.AddImage("img/arabic.gif")
' V případě potřeby přidejte obrazové filtry
' V tomto případě je vstup velmi nízké kvality
' IronTesseract dokáže přečíst, co běžný Tesseract neumí.
Dim Result = Ocr.Read(input)
' Console nemůže snadno tisknout arabštinu na Windows.
' Místo toho uložte na disk.
Result.SaveAsTextFile("arabic.txt")
End UsingVícejazyčný příklad
Je také možné používat OCR ve více jazycích současně. To může pomoci při získávání anglických metadat a adres URL v Unicode dokumentech.
// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Czech);
// Můžeme přidat libovolný počet jazyků
using (var input = new OcrInput())
{
input.Add("multi-language.pdf");
var Result = Ocr.Read(input);
Result.SaveAsTextFile("results.txt");
}' using IronOcr;
' PM> Install IronOcr.Languages.ChineseSimplified
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.ChineseSimplified
Ocr.AddSecondaryLanguage(OcrLanguage.Czech)
' Můžeme přidat libovolný počet jazyků
Using input = New OcrInput()
input.Add("multi-language.pdf")
Dim Result = Ocr.Read(input)
Result.SaveAsTextFile("results.txt")
End UsingPodrobné objekty výsledků OCR
IronOCR vrátí objekt výsledku OCR pro každou operaci OCR. Obecně platí, že vývojáři používají pouze textovou vlastnost tohoto objektu k získání textu z obrázku. Výsledky OCR však jsou mnohem pokročilejší.
using IronOcr;
using System.Drawing; // Přidejte odkaz na sestavu pro Rectangle
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Czech;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; // Důležité
using (var Input = new OcrInput(@"images\sample.tiff"))
{
OcrResult Result = Ocr.Read(Input);
var Pages = Result.Pages;
var Words = Pages[0].Words;
var Barcodes = Result.Barcodes;
// Prozkoumejte zde a vyhledejte rozsáhlé API:
// - Stránky, bloky, odstavce, čáry, slova, znaky
// - Export obrázku, souřadnice, statistiky
}Imports IronOcr
Imports System.Drawing ' Přidejte odkaz na sestavu pro Rectangle
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.Czech
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm
Ocr.Configuration.ReadBarCodes = True ' Důležité
Using Input = New OcrInput("images\sample.tiff")
Dim Result As OcrResult = Ocr.Read(Input)
Dim Pages = Result.Pages
Dim Words = Pages(0).Words
Dim Barcodes = Result.Barcodes
' Prozkoumejte zde a vyhledejte rozsáhlé API:
' - Stránky, bloky, odstavce, čáry, slova, znaky
' - Export obrázku, souřadnice, statistiky
End UsingVýkon
IronOCR funguje ihned po vybalení z krabice, bez potřeby ladit výkon nebo upravovat vstupní obrázky.
Rychlost je ohromující: IronOCR.2020+ je až 10krát rychlejší a dělá o 250% méně chyb než předchozí verze.
Zjistit více
Chcete-li se dozvědět více o OCR v C#, VB, F#, nebo v jakémkoli jiném jazyce .NET, přečtěte si naše komunitní výukové programy, které poskytují příklady z reálného světa, jak lze IronOCR použít, a mohou ukázat Nuance, jak co nejlépe využít tuto knihovnu.
K dispozici je také úplný odkaz na objekt pro vývojáře .NET.
Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.