Aktualisiert 16. Februar 2025
Teilen Sie:

Wie man Fotos mit IronOCR liest

This article was translated from English: Does it need improvement?
Translated
View the article in English

von Curtis Chau

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.

Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

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.

Eingabe

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)
VB   C#

Ausgabe

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.