Comment lire des photos avec IronOCR
Lorsqu'on traite de grands volumes de documents, en particulier des images numérisées comme les fichiers TIFF, l'extraction manuelle de texte peut être chronophage et sujette à des erreurs humaines. C'est là que la Reconnaissance Optique de Caractères (OCR) entre en jeu, offrant une méthode automatisée pour convertir avec précision le texte des images en données numériques. La technologie OCR peut gérer la complexité des images, telles que les documents numérisés ou les photographies, et les transformer en texte consultable et modifiable. Cela accélère non seulement le traitement des documents, mais garantit également une extraction de données plus précise par rapport à la transcription manuelle.
L'utilisation de l'OCR sur des formats tels que TIFF, qui peuvent être difficiles à lire en raison de leur taille, de la profondeur de couleur ou de la compression, permet aux entreprises et aux développeurs de numériser et de gérer rapidement de vastes quantités de données. Avec des solutions OCR comme la fonction ReadPhoto
d'IronOCR, les développeurs peuvent extraire du texte à partir d'images et même effectuer des opérations avancées telles que la recherche de mots-clés ou la conversion de données numérisées en PDF consultables. Cette technologie est particulièrement utile pour les industries qui traitent des documents juridiques, des archives ou des reçus, où la récupération efficace des données est essentielle.
Dans ce tutoriel, nous fournirons brièvement une entrée et un exemple sur la façon d'utiliser ReadPhoto
et de manipuler l'objet des résultats. Ainsi que les scénarios où les développeurs les utiliseraient en utilisant ReadPhoto
au lieu du Read
standard d'IronOCR.
Comment lire des photos avec IronOCR
- Téléchargez la bibliothèque C# pour lire les photos
- Importer les images pour traitement
- Utilisez la méthode d'importation appropriée en fonction du type d'image
- Utilisez la méthode
ReadPhoto
pour extraire des données de l'image - Accédez à la propriété OcrPhotoResult pour voir et manipuler les données extraites
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.
Pour utiliser cette fonction, vous devez également installer le package IronOcr.Extension.AdvancedScan.
Exemple de lecture de photos
La lecture de formats photo de haute qualité tels que tiff
et gif
est relativement simple en utilisant IronOCR. D'abord, nous créons une nouvelle variable et l'assignons comme un OcrInput
, puis nous chargeons l'image en utilisant LoadImageFrame
. Enfin, nous utilisons la méthode ReadPhoto
et obtenons les résultats.
A noter
- Étant donné que Tiff contient plusieurs cadres au sein d'une image unique, le paramètre
frameNumber
est nécessaire. De plus, l'index commence à 0, plutôt qu'à 1. - La méthode ne fonctionne actuellement que pour l'anglais, le chinois, le japonais, le coréen et l'alphabet latin.
L'utilisation de l'analyse avancée sur le Framework .NET nécessite que le projet soit exécuté sur une architecture x64.
Entrée
Comme la plupart des navigateurs ne prennent pas en charge le format TIFF de manière native, vous pouvez télécharger le fichier TIFF d'entrée ici. Pour afficher le fichier TIFF, je vais le convertir en WEBP.
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)
Sortie
Texte : Le texte extrait de l'entrée OCR.
Confiance : Une propriété "double" qui indique le niveau de confiance statistique en précision de la moyenne de chaque caractère, un étant le plus haut et 0 étant le plus bas.
TextRegions : Une liste de la propriété "TextRegions" indiquant où le texte OCR et sa position se trouvent dans l'entrée. Dans l'exemple ci-dessus, nous avons imprimé le numéro de la trame ainsi que le rectangle contenant le texte.
Différence entre ReadPhoto
et Read
La principale différence entre cette méthode readPhoto
et la méthode read
standard réside dans l'objet résultat et le format de fichier qu'elle accepte. LoadImageFrame
accepte spécifiquement uniquement les formats tiff
et gif
et n'accepte pas des formats comme Jpeg
, et il y a plusieurs raisons à cela.
Comparaison entre les images Tiff et Jpg
Le TIFF comme format de fichier est sans perte et généralement utilisé pour condenser plusieurs pages et plusieurs images en un seul format. Il est généralement utilisé pour le stockage d'images de haute qualité et multiples (par exemple, des documents juridiques, des images médicales). Il est bien plus complexe que les formats JPG standard et nécessite donc une méthode différente pour extraire pleinement le texte.
De plus, les images Tiff utilisent uniquement une compression différente, c'est pourquoi IronOCR doit utiliser une méthode spécialisée pour déchiffrer le texte.
Voici une comparaison plus détaillée entre TIFF et JPG.
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 |
Différents scénarios
Les développeurs devront considérer chaque cas d'utilisation en production pour optimiser davantage et permettre à leurs applications de fonctionner efficacement. Bien que readPhoto
soit adapté aux images complexes telles que Tiff
comme ci-dessus, le résultat serait traité lentement. D'autre part, jpg
peut être de qualité inférieure, mais l'opération serait généralement plus rapide. Cependant, la qualité de l'image, telle que la présence de bruit, entraînerait un faible taux de confiance avec l'OCR.
Utiliser la propriété confidence
dans OcrPhotoResults
ou toute classe qui utilise l'interface IOcrResult
vous donnera une idée de la précision des résultats, permettant aux développeurs de tester, réitérer et optimiser selon leur désir.
Les développeurs doivent trouver un juste milieu entre l'efficacité et la précision, en veillant à ce que les images atteignent un certain seuil de cohérence.