Svensk OCR i C#och .NET

Andra versioner av detta dokument:

IronOCR är en C#-komponent som gör det möjligt för .NET-kodare att läsa text från bilder och PDF-dokument på 126 språk, inklusive svenska.

Det är en avancerad gaffel av Tesseract, byggd exklusivt för .NET-utvecklarna och överträffar regelbundet andra Tesseract-motorer för både hastighet och noggrannhet.

Innehåll i IronOcr.Languages.Swedish

Detta paket innehåller 46 OCR-språk för .NET:

  • svenska
  • SwedishBest
  • SwedishFast

Ladda ner

Swedish Language Pack [Svenska]

Installation

Det första vi måste göra är att installera vårt svenska OCR-paket i ditt .NET-projekt.

Install-Package IronOCR.Languages.Swedish

Kodexempel

Detta C#-kodexempel läser svensk text från ett bild- eller PDF-dokument.

// PM> Install-Package IronOCR.Languages.Swedish
using IronOcr;

// Create a new instance of IronTesseract, which is used for OCR processes.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

// Use a using block for the OcrInput to handle file stream management.
using (var Input = new OcrInput(@"images\Swedish.png"))
{
    // Read the provided input and store the result.
    var Result = Ocr.Read(Input);

    // Extract the recognized text.
    var AllText = Result.Text;

    // Output the extracted text.
    Console.WriteLine(AllText);
}
// PM> Install-Package IronOCR.Languages.Swedish
using IronOcr;

// Create a new instance of IronTesseract, which is used for OCR processes.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

// Use a using block for the OcrInput to handle file stream management.
using (var Input = new OcrInput(@"images\Swedish.png"))
{
    // Read the provided input and store the result.
    var Result = Ocr.Read(Input);

    // Extract the recognized text.
    var AllText = Result.Text;

    // Output the extracted text.
    Console.WriteLine(AllText);
}
' PM> Install-Package IronOCR.Languages.Swedish
Imports IronOcr

' Create a new instance of IronTesseract, which is used for OCR processes.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

' Use a using block for the OcrInput to handle file stream management.
Using Input = New OcrInput("images\Swedish.png")
	' Read the provided input and store the result.
	Dim Result = Ocr.Read(Input)

	' Extract the recognized text.
	Dim AllText = Result.Text

	' Output the extracted text.
	Console.WriteLine(AllText)
End Using
$vbLabelText   $csharpLabel

Varför välja IronOCR?

IronOCR är ett lättinstallerat, komplett och väldokumenterat .NET-programbibliotek.

Välj IronOCR för att uppnå 99,8% + OCR-noggrannhet utan att använda externa webbtjänster, löpande avgifter eller skicka konfidentiella dokument över internet.

Varför C#-utvecklare väljer IronOCR framför Vanilla Tesseract:

  • Installera som en enda DLL eller NuGet
  • Inkluderar för Tesseract 5, 4 och 3 Motorer ur lådan.
  • Noggrannhet 99,8% överträffar betydligt bättre än vanlig Tesseract.
  • Snabb hastighet och multitrådning
  • MVC, WebApp, Desktop, Console & Server Application kompatibel
  • Inga Exes eller C++ - kod att arbeta med
  • Fullständigt PDF-stöd för OCR
  • För att utföra OCR nästan vilken bildfil eller PDF som helst
  • Fullständigt stöd för .NET Core, Standard och FrameWork
  • Distribuera på Windows, Mac, Linux, Azure, Docker, Lambda, AWS
  • Läs streckkoder och QR-koder
  • Exportera OCR som till XHTML
  • Exportera OCR till sökbara PDF-dokument
  • Multithreading-stöd
  • 126 internationella språk hanteras alla via NuGet- eller OcrData-filer
  • Extrahera bilder, koordinater, statistik och teckensnitt. Inte bara text.
  • Kan användas för att omfördela Tesseract OCR i kommersiella och egna applikationer.

IronOCR lyser när du arbetar med verkliga bilder och ofullkomliga dokument som fotografier eller skanningar med låg upplösning som kan ha digitalt brus eller brister.

Andra kostnadsfria OCR- bibliotek för .NET-plattformen, sådana andra .net tesseract-API: er och webbtjänster, fungerar inte så bra på dessa användningsfall.

OCR med Tesseract 5 - Starta kodning i C#

Kodprovet nedan visar hur enkelt det är att läsa text från en bild med C# eller VB .NET.

OneLiner

string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;
Dim Text As String = (New IronTesseract()).Read("img\Screenshot.png").Text
$vbLabelText   $csharpLabel

Konfigurerbar Hello World

// PM> Install-Package IronOCR.Languages.Swedish
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    Input.AddImage("images/sample.jpeg");
    // Add as many images as needed.

    var Result = Ocr.Read(Input);

    // Output the extracted text to the console.
    Console.WriteLine(Result.Text);
}
// PM> Install-Package IronOCR.Languages.Swedish
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    Input.AddImage("images/sample.jpeg");
    // Add as many images as needed.

    var Result = Ocr.Read(Input);

    // Output the extracted text to the console.
    Console.WriteLine(Result.Text);
}
' PM> Install-Package IronOCR.Languages.Swedish
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	Input.AddImage("images/sample.jpeg")
	' Add as many images as needed.

	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console.
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

C#PDF OCR

Samme tillvägagångssätt kan på samma sätt användas för att extrahera text från alla PDF-dokument.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var input = new OcrInput())
{
    // Add the PDF path. Support for password-protected PDFs.
    input.AddPdf("example.pdf", "password");
    // We can also choose specific PDF page numbers for OCR.

    var Result = Ocr.Read(input);

    // Output the extracted text and the number of pages.
    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // 1 page for every page in the PDF file.
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var input = new OcrInput())
{
    // Add the PDF path. Support for password-protected PDFs.
    input.AddPdf("example.pdf", "password");
    // We can also choose specific PDF page numbers for OCR.

    var Result = Ocr.Read(input);

    // Output the extracted text and the number of pages.
    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // 1 page for every page in the PDF file.
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using input = New OcrInput()
	' Add the PDF path. Support for password-protected PDFs.
	input.AddPdf("example.pdf", "password")
	' We can also choose specific PDF page numbers for OCR.

	Dim Result = Ocr.Read(input)

	' Output the extracted text and the number of pages.
	Console.WriteLine(Result.Text)
	Console.WriteLine($"{Result.Pages.Count()} Pages")
	' 1 page for every page in the PDF file.
End Using
$vbLabelText   $csharpLabel

OCR för MultiPage TIFF

OCR läser TIFF-filformat inklusive dokument med flera sidor. TIFF kan också konverteras direkt till en PDF-fil med sökbar text.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("multi-frame.tiff");

    // Read the images and store the result.
    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("multi-frame.tiff");

    // Read the images and store the result.
    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	Input.AddMultiFrameTiff("multi-frame.tiff")

	' Read the images and store the result.
	Dim Result = Ocr.Read(Input)

	' Output the extracted text.
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

Streckkoder och QR

En unik egenskap hos IronOCR är att den kan läsa streckkoder och QR-koder från dokument medan den söker efter text. Instanser av OcrResult.OcrBarcode klassen ger utvecklaren detaljerad information om varje skannad streckkod.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Enable barcode reading.
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    input.AddImage("img/Barcode.png");

    var Result = Ocr.Read(input);

    // Iterate over each barcode detected.
    foreach (var Barcode in Result.Barcodes)
    {
        // Output the barcode value and type.
        Console.WriteLine(Barcode.Value);
        // Type and location properties are also exposed.
    }
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Enable barcode reading.
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    input.AddImage("img/Barcode.png");

    var Result = Ocr.Read(input);

    // Iterate over each barcode detected.
    foreach (var Barcode in Result.Barcodes)
    {
        // Output the barcode value and type.
        Console.WriteLine(Barcode.Value);
        // Type and location properties are also exposed.
    }
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Enable barcode reading.
Ocr.Configuration.ReadBarCodes = True

Using input = New OcrInput()
	input.AddImage("img/Barcode.png")

	Dim Result = Ocr.Read(input)

	' Iterate over each barcode detected.
	For Each Barcode In Result.Barcodes
		' Output the barcode value and type.
		Console.WriteLine(Barcode.Value)
		' Type and location properties are also exposed.
	Next Barcode
End Using
$vbLabelText   $csharpLabel

OCR om specifika bildområden

Alla IronOCR: s skannings- och läsmetoder ger möjlighet att exakt specificera vilken del av en sida eller sidor vi vill läsa text från. Detta är mycket användbart när vi tittar på standardiserade formulär och kan spara väldigt mycket tid och förbättra effektiviteten.

För att använda beskärningsregioner måste vi lägga till en systemreferens till System.Drawing så att vi kan använda objektet System.Drawing.Rectangle .

using IronOcr;
using System.Drawing;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Define a content area using Rectangle.
    var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Dimensions are in pixels.

    Input.Add("document.png", ContentArea);

    // Read the provided content area and store the result.
    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
using IronOcr;
using System.Drawing;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Define a content area using Rectangle.
    var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Dimensions are in pixels.

    Input.Add("document.png", ContentArea);

    // Read the provided content area and store the result.
    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
Imports IronOcr
Imports System.Drawing

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	' Define a content area using Rectangle.
	Dim ContentArea = New Rectangle() With {
		.X = 215,
		.Y = 1250,
		.Height = 280,
		.Width = 1335
	}
	' Dimensions are in pixels.

	Input.Add("document.png", ContentArea)

	' Read the provided content area and store the result.
	Dim Result = Ocr.Read(Input)

	' Output the extracted text.
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

OCR för skanning av låg kvalitet

IronOCR OcrInput klassen kan fixa skanningar som normal Tesseract inte kan läsa.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
    // Use filters for better quality input before reading the text.
    Input.DeNoise(); // Fix digital noise and issues in the scan
    Input.Deskew(); // Correct the rotation and perspective

    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
    // Use filters for better quality input before reading the text.
    Input.DeNoise(); // Fix digital noise and issues in the scan
    Input.Deskew(); // Correct the rotation and perspective

    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput("img\Potter.LowQuality.tiff")
	' Use filters for better quality input before reading the text.
	Input.DeNoise() ' Fix digital noise and issues in the scan
	Input.Deskew() ' Correct the rotation and perspective

	Dim Result = Ocr.Read(Input)

	' Output the extracted text.
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

Exportera OCR-resultat som en sökbar PDF

Bild till PDF med kopierbara textsträngar. Kan indexeras av sökmotorer och databaser.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Set the document title.
    input.Title = "Quarterly Report";

    // Add multiple images for OCR.
    input.AddImage("image1.jpeg");
    input.AddImage("image2.png");
    input.AddImage("image3.gif");

    var Result = Ocr.Read(input);

    // Save the result as a searchable PDF.
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Set the document title.
    input.Title = "Quarterly Report";

    // Add multiple images for OCR.
    input.AddImage("image1.jpeg");
    input.AddImage("image2.png");
    input.AddImage("image3.gif");

    var Result = Ocr.Read(input);

    // Save the result as a searchable PDF.
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	' Set the document title.
	input.Title = "Quarterly Report"

	' Add multiple images for OCR.
	input.AddImage("image1.jpeg")
	input.AddImage("image2.png")
	input.AddImage("image3.gif")

	Dim Result = Ocr.Read(input)

	' Save the result as a searchable PDF.
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

TIFF till sökbar PDF-konvertering

Konvertera ett TIFF-dokument (eller någon grupp bildfiler) direkt till en sökbar PDF som kan indexeras upp av sökmotorerna på intranät, webbplats och google.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    input.AddMultiFrameTiff("example.tiff");

    // Read the TIFF and save the result as a searchable PDF.
    var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    input.AddMultiFrameTiff("example.tiff");

    // Read the TIFF and save the result as a searchable PDF.
    var Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	input.AddMultiFrameTiff("example.tiff")

	' Read the TIFF and save the result as a searchable PDF.
	Dim Result = Ocr.Read(input).SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

Exportera OCR-resultat som HTML

OCR-bild till XHTML-konvertering.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Set the document title.
    input.Title = "Html Title";

    input.AddImage("image1.jpeg");

    var Result = Ocr.Read(input);

    // Save the result as an HTML file.
    Result.SaveAsHocrFile("results.html");
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput())
{
    // Set the document title.
    input.Title = "Html Title";

    input.AddImage("image1.jpeg");

    var Result = Ocr.Read(input);

    // Save the result as an HTML file.
    Result.SaveAsHocrFile("results.html");
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput()
	' Set the document title.
	input.Title = "Html Title"

	input.AddImage("image1.jpeg")

	Dim Result = Ocr.Read(input)

	' Save the result as an HTML file.
	Result.SaveAsHocrFile("results.html")
End Using
$vbLabelText   $csharpLabel

OCR-bildförbättringsfilter

IronOCR tillhandahåller unika filter för OcrInput objekt för att förbättra OCR-prestanda.

Exempel på bildförbättringskod

Gör OCR-inmatade bilder högre kvalitet för att ge bättre, snabbare OCR-resultat.

using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
    // Use filters for better quality input before reading the text.
    Input.DeNoise(); // Fix digital noise and issues in the scan
    Input.Deskew(); // Correct the rotation and perspective

    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
using IronOcr;

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
    // Use filters for better quality input before reading the text.
    Input.DeNoise(); // Fix digital noise and issues in the scan
    Input.Deskew(); // Correct the rotation and perspective

    var Result = Ocr.Read(Input);

    // Output the extracted text.
    Console.WriteLine(Result.Text);
}
Imports IronOcr

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

Using Input = New OcrInput("LowQuality.jpeg")
	' Use filters for better quality input before reading the text.
	Input.DeNoise() ' Fix digital noise and issues in the scan
	Input.Deskew() ' Correct the rotation and perspective

	Dim Result = Ocr.Read(Input)

	' Output the extracted text.
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

Lista över OCR-bildfilter

Ingångsfilter för att förbättra OCR-prestanda som är inbyggda i IronOCR inkluderar:

  • OcrInput.Rotate(double degrees) - Roterar bilder med ett antal grader medurs. Använd negativa siffror moturs.
  • OcrInput.Binarize() - Detta bildfilter gör varje pixel svart eller vit utan mellanliggande mark. Kan förbättra OCR-prestandafall med mycket låg kontrast mellan text och bakgrund.
  • OcrInput.ToGrayScale() - Detta bildfilter förvandlar varje pixel till en nyans av gråskala. Det är osannolikt att OCR-noggrannheten förbättras men kan förbättra hastigheten
  • OcrInput.Contrast() - Ökar kontrasten automatiskt. Detta filter förbättrar ofta OCR-hastighet och noggrannhet vid skanningar med låg kontrast.
  • OcrInput.DeNoise() - Tar bort digitalt brus. Detta filter ska endast användas där buller förväntas.
  • OcrInput.Invert() - Inverterar varje färg. Till exempel blir vit svart: svart blir vit.
  • OcrInput.Dilate() - Avancerad morfologi. Dilering lägger till pixlar till gränserna för objekt i en bild. Mittemot Erode
  • OcrInput.Erode() - Avancerad morfologi. Erosion tar bort pixlar på objektgränserna motsatt av Dilate
  • OcrInput.Deskew() - Roterar en bild så att den är rätt uppåt och ortogonal. Detta är mycket användbart för OCR eftersom Tesseract-toleransen för skeva skanningar kan vara så låg som 5 grader.
  • OcrInput.DeepCleanBackgroundNoise() - Avlägsnande av kraftigt bakgrundsbrus. Använd endast detta filter om extremt dokumentbakgrundsbrus är känt, eftersom detta filter också riskerar att minska OCR-noggrannhet för rena dokument och är mycket CPU-dyrt.
  • OcrInput.EnhanceResolution - Förbättrar upplösningen på bilder med låg kvalitet. Detta filter behövs inte ofta eftersom OcrInput.MinimumDPI och OcrInput.TargetDPI automatiskt kommer att fånga och lösa ingångar med låg upplösning.

CleanBackgroundNoise. Detta är en inställning som är lite tidskrävande; emellertid tillåter det biblioteket att automatiskt rengöra digitalt brus, pappers skrynklor och andra brister i en digital bild som annars skulle göra det oförmöget att läsas av andra OCR-bibliotek.

EnhanceContrast är en inställning som gör att IronOCR automatiskt ökar textens kontrast mot en bilds bakgrund, vilket ökar OCR-noggrannheten och i allmänhet ökar prestanda och OCR-hastighet.

EnhanceResolution är en inställning som automatiskt upptäcker bilder med låg upplösning (som är under 275 dpi) och automatiskt uppskalar bilden och sedan skärper hela texten så att den kan läsas perfekt av ett OCR-bibliotek. Även om denna operation i sig är tidskrävande minskar den i allmänhet den totala tiden för en OCR-operation på en bild.

Språk IronOCR stöder 22 internationella språkpaket och språkinställningen kan användas för att välja ett eller flera språk som ska användas för en OCR-operation.

Strategi IronOCR stöder två strategier. Vi kan välja att antingen gå för en snabb och mindre korrekt genomsökning av ett dokument eller använda en avancerad strategi som använder vissa artificiella intelligensmodeller för att automatiskt förbättra noggrannheten i OCR-text genom att titta på ordens statistiska relation till varandra i en mening.

ColorSpace är en inställning där vi kan välja OCR i gråskala eller färg. Generellt är gråskala det bästa alternativet. Men ibland när det finns texter eller bakgrunder med liknande nyans men väldigt annorlunda färger, kommer ett färgfärgutrymme i färger att ge bättre resultat.

DetectWhiteTextOnDarkBackgrounds. I allmänhet förväntar sig alla OCR-bibliotek att se svart text på vit bakgrund. Med den här inställningen kan IronOCR automatiskt upptäcka negativa eller mörka sidor med vit text och läsa dem.

InputImageType. Denna inställning gör det möjligt för utvecklaren att vägleda OCR-biblioteket om huruvida den tittar på ett fullständigt dokument eller ett utdrag, till exempel en skärmdump.

RotateAndStraighten är en avancerad inställning som tillåter IronOCR den unika förmågan att läsa dokument som inte bara roteras utan kanske innehåller perspektiv, till exempel fotografier av textdokument.

ReadBarcodes är en användbar funktion som gör det möjligt för IronOCR att automatiskt läsa streckkoder och QR-koder på sidor eftersom det också läser text utan att lägga till en större extra tidsbörda.

Färgdjup. Den här inställningen avgör hur många bitar per pixel OCR-biblioteket ska använda för att bestämma djupet på en färg. Ett högre färgdjup kan öka OCR-kvaliteten, men kommer också att öka den tid som krävs för OCR-operationen.

126 språkpaket

IronOCR stöder 126 internationella språk via språkpaket som distribueras som DLL-filer, som kan laddas ner från den här webbplatsen eller också från NuGet Package Manager.

Språken inkluderar tyska, franska, engelska, kinesiska, japanska och många fler. Specialistpaket finns för MRZ-pass, MICR-kontroller, finansiella data, registreringsskyltar och många fler. Du kan också använda valfri tesseract ".traineddata" -fil - inklusive de du skapar själv.

Språkexempel

Använda andra OCR-språk.

using IronOcr;

// PM> Install IronOcr.Languages.Arabic

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Arabic.
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    input.AddImage("img/arabic.gif");
    // Add image filters if necessary.
    // In this case, even though the input might be very low quality,
    // IronTesseract can read what conventional Tesseract cannot.

    var Result = Ocr.Read(input);

    // The console cannot easily print Arabic on Windows.
    // Let's save to disk instead.
    Result.SaveAsTextFile("arabic.txt");
}
using IronOcr;

// PM> Install IronOcr.Languages.Arabic

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Arabic.
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    input.AddImage("img/arabic.gif");
    // Add image filters if necessary.
    // In this case, even though the input might be very low quality,
    // IronTesseract can read what conventional Tesseract cannot.

    var Result = Ocr.Read(input);

    // The console cannot easily print Arabic on Windows.
    // Let's save to disk instead.
    Result.SaveAsTextFile("arabic.txt");
}
Imports IronOcr

' PM> Install IronOcr.Languages.Arabic

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Arabic.
Ocr.Language = OcrLanguage.Arabic

Using input = New OcrInput()
	input.AddImage("img/arabic.gif")
	' Add image filters if necessary.
	' In this case, even though the input might be very low quality,
	' IronTesseract can read what conventional Tesseract cannot.

	Dim Result = Ocr.Read(input)

	' The console cannot easily print Arabic on Windows.
	' Let's save to disk instead.
	Result.SaveAsTextFile("arabic.txt")
End Using
$vbLabelText   $csharpLabel

Exempel på flera språk

Det är också möjligt att använda OCR med flera språk samtidigt. Detta kan verkligen hjälpa till att få engelskspråkiga metadata och webbadresser i Unicode-dokument.

using IronOcr;

// PM> Install IronOcr.Languages.ChineseSimplified

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set primary and secondary languages.
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Swedish);

// We can add any number of languages.

using (var input = new OcrInput())
{
    input.Add("multi-language.pdf");

    var Result = Ocr.Read(input);

    // Save the results to a text file.
    Result.SaveAsTextFile("results.txt");
}
using IronOcr;

// PM> Install IronOcr.Languages.ChineseSimplified

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set primary and secondary languages.
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Swedish);

// We can add any number of languages.

using (var input = new OcrInput())
{
    input.Add("multi-language.pdf");

    var Result = Ocr.Read(input);

    // Save the results to a text file.
    Result.SaveAsTextFile("results.txt");
}
Imports IronOcr

' PM> Install IronOcr.Languages.ChineseSimplified

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set primary and secondary languages.
Ocr.Language = OcrLanguage.ChineseSimplified
Ocr.AddSecondaryLanguage(OcrLanguage.Swedish)

' We can add any number of languages.

Using input = New OcrInput()
	input.Add("multi-language.pdf")

	Dim Result = Ocr.Read(input)

	' Save the results to a text file.
	Result.SaveAsTextFile("results.txt")
End Using
$vbLabelText   $csharpLabel

Detaljerade OCR-resultatobjekt

IronOCR returnerar ett OCR-resultatobjekt för varje OCR-operation. Generellt använder utvecklare endast textegenskapen för det här objektet för att få texten skannad från bilden. OCR-resultaten DOM är dock mycket mer avancerad än detta.

using IronOcr;
using System.Drawing; // Add assembly reference for handling drawing utilities

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

// Configure the OCR engine to use Tesseract and LSTM.
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;

// Enable barcode reading.
Ocr.Configuration.ReadBarCodes = true;

using (var Input = new OcrInput(@"images\sample.tiff"))
{
    // Perform OCR and obtain results.
    OcrResult Result = Ocr.Read(Input);

    // Extract pages, words, and barcodes.
    var Pages = Result.Pages;
    var Words = Pages[0].Words;
    var Barcodes = Result.Barcodes;

    // Explore here to find a robust, detailed API:
    // - Pages, blocks, paragraphs, lines, words, characters
    // - Image export, font coordinates, statistical data
}
using IronOcr;
using System.Drawing; // Add assembly reference for handling drawing utilities

// Create a new instance of IronTesseract.
var Ocr = new IronTesseract();

// Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish;

// Configure the OCR engine to use Tesseract and LSTM.
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;

// Enable barcode reading.
Ocr.Configuration.ReadBarCodes = true;

using (var Input = new OcrInput(@"images\sample.tiff"))
{
    // Perform OCR and obtain results.
    OcrResult Result = Ocr.Read(Input);

    // Extract pages, words, and barcodes.
    var Pages = Result.Pages;
    var Words = Pages[0].Words;
    var Barcodes = Result.Barcodes;

    // Explore here to find a robust, detailed API:
    // - Pages, blocks, paragraphs, lines, words, characters
    // - Image export, font coordinates, statistical data
}
Imports IronOcr
Imports System.Drawing ' Add assembly reference for handling drawing utilities

' Create a new instance of IronTesseract.
Private Ocr = New IronTesseract()

' Set the language to Swedish.
Ocr.Language = OcrLanguage.Swedish

' Configure the OCR engine to use Tesseract and LSTM.
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm

' Enable barcode reading.
Ocr.Configuration.ReadBarCodes = True

Using Input = New OcrInput("images\sample.tiff")
	' Perform OCR and obtain results.
	Dim Result As OcrResult = Ocr.Read(Input)

	' Extract pages, words, and barcodes.
	Dim Pages = Result.Pages
	Dim Words = Pages(0).Words
	Dim Barcodes = Result.Barcodes

	' Explore here to find a robust, detailed API:
	' - Pages, blocks, paragraphs, lines, words, characters
	' - Image export, font coordinates, statistical data
End Using
$vbLabelText   $csharpLabel

Prestanda

IronOCR fungerar ur lådan utan att behöva justera prestanda eller kraftigt ändra ingångsbilder.

Speed is Blazing: IronOcr.2020+ är upp till 10 gånger snabbare och gör över 250% färre fel än tidigare builds.

Läs mer

För att lära dig mer om OCR i C #, VB, F # eller något annat .NET-språk, läs våra communitytutorialer, som ger verkliga exempel på hur IronOCR kan användas och kan visa nyanserna i hur du får ut det bästa av detta bibliotek.

En fullständig objektreferens för .NET-utvecklare finns också.