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 ist die optische Zeichenerkennung(OCR)bietet eine automatisierte Methode, 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 fortgeschrittene Operationen wie das Suchen nach Schlüsselwörtern oder das Umwandeln 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 geben wir einen kurzen Überblick über die Eingabe und ein Beispiel, wie ReadPhoto
verwendet wird und wie das Ergebnisobjekt bearbeitet werden kann. Sowie Szenarien, in denen Entwickler feststellen würden, dass sie ReadPhoto
anstelle des standardmäßigen Read
von IronOCR verwenden.
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
LeseFoto
Methode zur Extraktion von Daten aus dem Bild - Zugriff auf dieOcrFotoErgebnisEigenschaft zum Anzeigen und Bearbeiten der extrahierten Daten
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 die IronOcr.Extension.AdvancedScan paket.
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
ein. Schließlich verwenden wir die Methode ReadPhoto
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-Eingabe herunterladenhier. 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
Der extrahierte Text aus der OCR-Eingabe.
Confidence: Eine "double"-Eigenschaft, die das statistische Genauigkeitsvertrauen eines Durchschnittswertes jedes Zeichens angibt, wobei eins der höchste und null der niedrigste Wert ist.
TextRegions: Eine Liste der Eigenschaft "TextRegions", die angibt, wo sich der OCR-Text und dessen Position innerhalb der Eingabe befinden. 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 Methode readPhoto
im Vergleich zur Standardmethode read
liegt im Ergebnisobjekt und im Dateiformat, das sie verwendet. LoadImageFrame
akzeptiert speziell nur tiff
und gif
und unterstützt keine Formate wie Jpeg
, und 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 die hochwertige Speicherung mehrerer Bilder verwendet(zum Beispiel juristische Dokumente, 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.
Funktion | TIFF (Tagged Image File Format) | JPG/JPEG (Joint Photographic Experts Group) |
---|---|---|
Komprimierung | Verlustfrei oder unkomprimiert (bewahrt die Qualität) | Verlustbehaftete Kompression (verringert die Qualität für kleinere Dateigröße) |
Dateigröße | Groß (aufgrund hoher Qualität und optionaler fehlender Kompression) | Kleiner, optimiert für die Webnutzung und schnelles Laden |
Bildqualität | Hoch (ideal für den professionellen Einsatz, behält alle Details bei) | Niedriger (durch verlustbehaftete Kompression wird etwas Qualität geopfert) |
Farbtiefe | Unterstützt hohe Farbtiefe (bis zu 16-Bit oder 32-Bit pro Kanal) | 24-Bit-Farbe (16,7 Millionen Farben) |
Anwendungsfall | Professionelle Fotografie, Publishing, Scannen, Archivierung | Webbilder, soziale Medien, Alltagsfotos |
Transparenz | Unterstützt Transparenz und Alphakanäle | TutnichtUnterstützung von Transparenz |
Bearbeitung | Gut für mehrere Bearbeitungen (kein Qualitätsverlust beim erneuten Speichern) | Die Qualität verschlechtert sich bei wiederholtem Bearbeiten und Speichern. |
Kompatibilität | In professioneller Software weit verbreitet unterstützt | Universell unterstützt auf allen Plattformen und Geräten |
Animation | Unterstützt keine Animationen | Unterstützt keine Animationen |
Metadaten | Speichert umfangreiche Metadaten (EXIF, Ebenen, etc.) | Speichert EXIF-Metadaten, ist aber eingeschränkter |
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 kann jpg
von geringerer Qualität sein, aber der Vorgang würde im Allgemeinen schneller ablaufen. 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 Eigenschaft confidence
in OcrPhotoResults
oder in einer beliebigen Klasse, die das Interface IOcrResult
verwendet, gibt Ihnen eine Vorstellung davon, wie genau die Ergebnisse sind und ermöglicht es Entwicklern, zu testen, zu iterieren und nach Wunsch zu optimieren.
Entwickler sollten eine feine Linie zwischen Effizienz und Genauigkeit finden, um sicherzustellen, dass die Bilder einem bestimmten Konsistenzschwellenwert entsprechen.