Wie man Fotos mit IronOCR liest
Beim Umgang mit großen Mengen von Dokumenten, insbesondere gescannten Bildern wie TIFF-Dateien, kann das manuelle Extrahieren von Text zeitaufwändig und fehleranfällig sein. Hier kommt die Optische Zeichenerkennung (OCR) ins Spiel, die eine automatisierte Methode bietet, um Text aus Bildern genau in digitale Daten umzuwandeln. OCR-Technologie kann die Komplexität von Bildern, wie gescannten Dokumenten oder Fotografien, verarbeiten und sie in durchsuchbaren, bearbeitbaren Text umwandeln. Dies beschleunigt nicht nur die Dokumentenverarbeitung, sondern sorgt auch für eine genauere Datenauswertung im Vergleich zur manuellen Transkription.
Durch die Verwendung von OCR für Formate wie TIFF, die aufgrund ihrer Größe, Farbtiefe oder Kompression schwer zu lesen sein können, können Unternehmen und Entwickler schnell große Mengen an Daten digitalisieren und verwalten. Mit OCR-Lösungen wie der ReadPhoto
-Funktion von IronOCR können Entwickler Text aus Bildern extrahieren und sogar erweiterte Operationen wie das Suchen nach Schlüsselwörtern oder das Konvertieren gescannter Daten in durchsuchbare PDFs durchführen. Diese Technologie ist besonders nützlich für Branchen, die mit juristischen Dokumenten, Archiven oder Quittungen umgehen, bei denen eine effiziente Datenabfrage entscheidend ist.
In diesem Tutorial werden wir kurz ein Beispiel dafür geben, wie man ReadPhoto
verwendet und wie man das Ergebnisobjekt manipuliert. Sowie Szenarien, in denen Entwickler ReadPhoto
anstelle des standardmäßigen Read
von IronOCR verwenden würden.
Wie man Fotos mit IronOCR liest
- Laden Sie die C#-Bibliothek zum Lesen von Fotos herunter
- Importieren Sie die Bilder zur Verarbeitung
- Verwenden Sie die geeignete Importmethode basierend auf dem Bildtyp
- Verwenden Sie die
ReadPhoto
-Methode, um Daten aus dem Bild zu extrahieren - Greifen Sie auf die OcrPhotoResult-Eigenschaft zu, um die extrahierten Daten anzuzeigen und zu bearbeiten.
Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.
Um diese Funktion zu nutzen, müssen Sie auch das IronOcr.Extension.AdvancedScan-Paket installieren.
Beispiel für Fotoauslesen
Das Lesen von hochwertigen Fotoformaten wie tiff
und gif
ist mit IronOCR relativ einfach. Zuerst erstellen wir eine neue Variable und weisen sie als OcrInput
zu, dann laden wir das Bild mit LoadImageFrame
. Schließlich verwenden wir die ReadPhoto
-Methode und erhalten die Ergebnisse.
Bitte beachten Sie
- Da Tiff mehrere Rahmen innerhalb eines einzelnen Bildes enthält, wird der Parameter
frameNumber
benötigt. Darüber hinaus beginnt der Index bei 0 statt bei 1. - Die Methode funktioniert derzeit nur für Englisch, Chinesisch, Japanisch, Koreanisch und das lateinische Alphabet.
Die Verwendung des erweiterten Scans im .NET-Framework setzt voraus, dass das Projekt auf einer x64-Architektur läuft.
Eingabe
Da die meisten Browser das TIFF-Format nicht nativ unterstützen, können Sie die TIFF-Datei hier herunterladen. Um die TIFF-Datei anzuzeigen, werde ich sie in WEBP konvertieren.
Code
:path=/static-assets/ocr/content-code-examples/how-to/read-photo-read-photo.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);
// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// Index number refer to region order in the page
int number = result.TextRegions[0].FrameNumber;
// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;
//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;
var output = $"Text in First Region: {textinregion}\n"
+ $"Text Region:\n"
+ $"Starting X: {region.X}\n"
+ $"Starting Y: {region.Y}\n"
+ $"Region Width: {region.Width}\n"
+ $"Region Height: {region.Height}\n"
+ $"Result Confidence: {result.Confidence}\n\n"
+ $"Full Scnned Photo Text: {result.Text}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("ocr.tiff", 0)
' Read photo
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' Index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).FrameNumber
' Extract the text in the first region
Dim textinregion As String = result.TextRegions(0).TextInRegion
'Extract the co_ordinates of the first text region
Dim region As Rectangle = result.TextRegions(0).Region
Dim output = $"Text in First Region: {textinregion}" & vbLf & $"Text Region:" & vbLf & $"Starting X: {region.X}" & vbLf & $"Starting Y: {region.Y}" & vbLf & $"Region Width: {region.Width}" & vbLf & $"Region Height: {region.Height}" & vbLf & $"Result Confidence: {result.Confidence}" & vbLf & vbLf & $"Full Scnned Photo Text: {result.Text}"
Console.WriteLine(output)
Ausgabe
Text: Der extrahierte Text aus OCR-Eingabe.
Vertrauen: Eine "double"-Eigenschaft, die das statistische Genauigkeitsvertrauen eines Durchschnitts aller Zeichen angibt, wobei eins die höchste und null die niedrigste ist.
TextRegions: Eine Liste der Eigenschaft "TextRegions", die angibt, wo sich der OCR-Text und dessen Position innerhalb der Eingabe befindet. Im obigen Beispiel haben wir die Rahmennummer sowie das Rechteck, das den Text enthält, ausgegeben.
Unterschied zwischen ReadPhoto
und Read
Der Hauptunterschied zwischen dieser readPhoto
-Methode im Vergleich zur Standard-read
Methode ist das Ergebnisobjekt und das Dateiformat, das sie verwendet. LoadImageFrame
nimmt speziell nur tiff
und gif
an und akzeptiert keine Formate wie Jpeg
. Dafür gibt es einige Gründe.
Vergleich zwischen Tiff- und Jpg-Bildern
Tiff als Dateiformat ist verlustfrei und wird normalerweise verwendet, um mehrere Seiten und mehrere Rahmen in ein einziges Format zu verdichten. Es wird typischerweise für hochqualitative, multi-Bildspeicherung verwendet (zum Beispiel Rechtsdokumente, medizinische Bilder). Es ist weitaus komplexer als Standard-JPG-Formate und erfordert daher eine andere Methode, um den Text vollständig daraus zu extrahieren.
Außerdem verwenden Tiff-Bilder nur eine andere Kompression, sodass IronOCR eine spezialisierte Methode verwenden muss, um den Text zu entschlüsseln.
Hier ist eine weitere Aufschlüsselung zwischen TIFF und JPG im Vergleich.
Feature | TIFF (Tagged Image File Format) | JPG/JPEG (Joint Photographic Experts Group) |
---|---|---|
Compression | Lossless or uncompressed (preserves quality) | Lossy compression (reduces quality for smaller file size) |
File Size | Large (due to high quality and optional lack of compression) | Smaller, optimized for web use and fast loading |
Image Quality | High (ideal for professional use, retains all details) | Lower (due to lossy compression, some quality is sacrificed) |
Color Depth | Supports high color depth (up to 16-bit or 32-bit per channel) | 24-bit color (16.7 million colors) |
Use Case | Professional photography, publishing, scanning, archiving | Web images, social media, everyday photos |
Transparency | Supports transparency and alpha channels | Does not support transparency |
Editing | Good for multiple edits (no quality loss with resaving) | Quality degrades with repeated edits and saves |
Compatibility | Widely supported in professional software | Universally supported across all platforms and devices |
Animation | Does not support animation | Does not support animation |
Metadata | Stores extensive metadata (EXIF, layers, etc.) | Stores EXIF metadata but is more limited |
Verschiedene Szenarien
Entwickler müssen jeden Anwendungsfall in der Produktion berücksichtigen, um ihre Anwendungen weiter zu optimieren und effektiv laufen zu lassen. Obwohl readPhoto
für komplexe Bilder wie Tiff
wie oben geeignet ist, würde das Ergebnis langsam verarbeitet werden. Andererseits könnte jpg
von geringerer Qualität sein, aber der Vorgang wäre in der Regel schneller. Allerdings würde eine schlechte Bildqualität wie das Vorhandensein von Rauschen zu einer geringen Zuverlässigkeit bei der Texterkennung (OCR) führen.
Die Verwendung der confidence
-Eigenschaft in den OcrPhotoResults
oder einer beliebigen Klasse, die das Interface IOcrResult
verwendet, gibt Ihnen einen Eindruck davon, wie genau die Ergebnisse sind, was Entwicklern ermöglicht, zu testen, zu iterieren und nach Bedarf zu optimieren.
Entwickler sollten eine feine Linie zwischen Effizienz und Genauigkeit finden, um sicherzustellen, dass die Bilder einem bestimmten Konsistenzschwellenwert entsprechen.