Č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.
Install-Package IronOCR.Languages.Czech
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
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;
}Proč 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
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;Konfigurovatelný 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);
}// 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);
}C# 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
}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
}OCR 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);
}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);
}Čá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;
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
}
}OCR 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);
}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);
}OCR 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);
}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);
}Exportujte 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");
}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");
}Př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");
}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");
}Exportujte 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");
}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");
}Filtry 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);
}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);
}Seznam 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
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");
}Ví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
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");
}Podrobné 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
}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
}Vý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.





