Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Im heutigen digitalen Zeitalter ist die optische Zeichenerkennung (Optical Character Recognition(OCR) technologie ist aus verschiedenen Branchen nicht mehr wegzudenken und ermöglicht die Umwandlung von Bildern und gescannten Dokumenten in bearbeitbaren und durchsuchbaren Text.
Unter den vielen verfügbaren OCR-Programmen, wie z. B. Google Cloud Vision(Cloud Vision API)adobe Acrobat Pro DC, ABBYY Finereader und viele andere, Windows OCR Engine vs. Tesseract, undIronOCR heben sich als herausragende Konkurrenten hervor, die jeweils einzigartige Funktionen und Möglichkeiten zur Unterstützung der Dokumentenanalyse bieten.
Ziel dieses Artikels ist es, eine umfassende vergleichende Analyse dieser drei OCR-Engines vorzunehmen und ihre Genauigkeit, Leistung und einfache Integration zu bewerten.
OCR-Engines sind Softwaretools zur Erkennung und Extraktion von Klartext aus Bildern, PDF-Dateien und anderen gescannten Dokumenten. Sie verwenden hochentwickelte Algorithmen und maschinelle Lerntechniken, um Zeichen genau zu erkennen und in eine maschinenlesbare Textdatei zu konvertieren. Windows OCR Engine, Tesseract und IronOCR sind drei weit verbreitete OCR-Lösungen, die jeweils ihre Stärken und Anwendungen haben.
DieWindows OCR Enginedie in das Windows-Betriebssystem integrierte Software bietet eine komfortable und benutzerfreundliche Lösung für die Extraktion von Text aus Eingabebildern und gescannten Dokumenten. Mithilfe fortschrittlicher Bildverarbeitungstechniken kann es Text in verschiedenen Sprachen und Schriftarten genau erkennen. Die Windows OCR Engine ist über die Windows Runtime API zugänglich, was eine nahtlose Integration in Windows-Anwendungen mit den Möglichkeiten eines Befehlszeilen-Tools ermöglicht.
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string [] args)
{
// Provide the path to the image file
string imagePath = "sample.png";
try
{
// Instantiate the program class
Program program = new Program();
// Call the ExtractText method to extract text from the image
string extractedText = await program.ExtractText(imagePath);
// Display the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(extractedText);
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
public async Task<string> ExtractText(string image)
{
// Initialize StringBuilder to store extracted text
StringBuilder text = new StringBuilder();
try
{
// Open the image file stream
using (var fileStream = System.IO.File.OpenRead(image))
{
Console.WriteLine("Extracted Text:");
// Create a BitmapDecoder from the image file stream
var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
// Get the software bitmap from the decoder
var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
// Create an OCR engine from user profile languages
var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
// Recognize text from the software bitmap
var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
// Append each line of recognized text to the StringBuilder
foreach (var line in ocrResult.Lines)
{
text.AppendLine(line.Text);
}
}
}
catch (Exception ex)
{
throw ex; // Propagate the exception
}
// Return the extracted text
return text.ToString();
}
}
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string [] args)
{
// Provide the path to the image file
string imagePath = "sample.png";
try
{
// Instantiate the program class
Program program = new Program();
// Call the ExtractText method to extract text from the image
string extractedText = await program.ExtractText(imagePath);
// Display the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(extractedText);
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
public async Task<string> ExtractText(string image)
{
// Initialize StringBuilder to store extracted text
StringBuilder text = new StringBuilder();
try
{
// Open the image file stream
using (var fileStream = System.IO.File.OpenRead(image))
{
Console.WriteLine("Extracted Text:");
// Create a BitmapDecoder from the image file stream
var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
// Get the software bitmap from the decoder
var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
// Create an OCR engine from user profile languages
var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
// Recognize text from the software bitmap
var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
// Append each line of recognized text to the StringBuilder
foreach (var line in ocrResult.Lines)
{
text.AppendLine(line.Text);
}
}
}
catch (Exception ex)
{
throw ex; // Propagate the exception
}
// Return the extracted text
return text.ToString();
}
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Provide the path to the image file
Dim imagePath As String = "sample.png"
Try
' Instantiate the program class
Dim program As New Program()
' Call the ExtractText method to extract text from the image
Dim extractedText As String = Await program.ExtractText(imagePath)
' Display the extracted text
Console.WriteLine("Extracted Text:")
Console.WriteLine(extractedText)
Catch ex As Exception
Console.WriteLine("An error occurred: " & ex.Message)
End Try
End Function
Public Async Function ExtractText(ByVal image As String) As Task(Of String)
' Initialize StringBuilder to store extracted text
Dim text As New StringBuilder()
Try
' Open the image file stream
Using fileStream = System.IO.File.OpenRead(image)
Console.WriteLine("Extracted Text:")
' Create a BitmapDecoder from the image file stream
Dim bmpDecoder = Await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream())
' Get the software bitmap from the decoder
Dim softwareBmp = Await bmpDecoder.GetSoftwareBitmapAsync()
' Create an OCR engine from user profile languages
Dim ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages()
' Recognize text from the software bitmap
Dim ocrResult = Await ocrEngine.RecognizeAsync(softwareBmp)
' Append each line of recognized text to the StringBuilder
For Each line In ocrResult.Lines
text.AppendLine(line.Text)
Next line
End Using
Catch ex As Exception
Throw ex ' Propagate the exception
End Try
' Return the extracted text
Return text.ToString()
End Function
End Class
*Tesserakt, eine von Google entwickelte Open-Source-OCR-Engine, hat aufgrund ihrer Genauigkeit und Vielseitigkeit große Popularität erlangt. Es unterstützt über 100 Sprachen und kann verschiedene Bildformate verarbeiten, darunter TIFF, JPEG und PNG. Die Tesseract OCR Engine nutzt Deep-Learning-Algorithmen und neuronale Netze, um eine hohe Texterkennungsgenauigkeit zu erreichen, so dass sie für eine Vielzahl von Anwendungen geeignet ist.
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
Console.WriteLine(plainText);
}
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
Console.WriteLine(plainText);
}
Imports Patagames.Ocr
Using api = OcrApi.Create()
api.Init(Patagames.Ocr.Enums.Languages.English)
Dim plainText As String = api.GetTextFromImage("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
Console.WriteLine(plainText)
End Using
IronOCR, eine von Iron Software entwickelte leistungsstarke OCR-Engine, zeichnet sich durch ihre außergewöhnliche Genauigkeit, Benutzerfreundlichkeit und vielseitige Sprachunterstützung aus. Es bietet OCR-Funktionalität vor Ort und unterstützt über 127 Sprachen, wodurch es sich für globale Anwendungen eignet. IronOCR nutzt fortschrittliche Algorithmen des maschinellen Lernens und Cloud-Vision-Technologie, um selbst in schwierigen Szenarien präzise Texterkennungsergebnisse zu liefern.
Bevor wir uns dem Programmierbeispiel zuwenden, wollen wir sehen, wie IronOCR mit dem NuGet Package Manager installiert wird.
Gehen Sie in Visual Studio zum Menü Tools und wählen Sie NuGet Package Manager.
Es öffnet sich ein neues Fenster. Gehen Sie auf die Registerkarte 'Durchsuchen' und geben Sie 'IronOCR' in die Suchleiste ein.
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr = New IronTesseract()
ocr.Language = OcrLanguage.English
Dim result = ocr.Read("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
Console.WriteLine(result.Text)
IronOCR: Unterstützt über 127 Sprachen und eignet sich damit für globale Anwendungen.
6. Schlussfolgerung
Zusammenfassend lässt sich sagen, dass die Windows OCR Engine und Tesseract zwar eine beliebte Wahl für die Texterkennung sind,IronOCR entwickelt sich zur genauesten und vielseitigsten OCR-Engine. Die branchenführende Genauigkeit, die umfassende Sprachunterstützung und die einfache Integration machen sie zu einer herausragenden Lösung für Unternehmen und Entwickler, die zuverlässige OCR-Funktionen suchen. Durch den Einsatz von IronOCR können Unternehmen ihre Arbeitsabläufe in der Dokumentenverarbeitung optimieren, die Genauigkeit der Datenextraktion verbessern und wertvolle Erkenntnisse aus gescannten Dokumenten und Bildern gewinnen.
IronOCR bietet einekostenlos testen. Um mehr über IronOCR und seine Funktionen zu erfahren, besuchen Sie*hier.
9 .NET API-Produkte für Ihre Bürodokumente