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 des caractères(OCR)offre 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
de 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 didacticiel, nous fournirons brièvement une entrée et un exemple de la façon d'utiliser ReadPhoto
et de manipuler l'objet results. Ainsi que des scénarios où les développeurs les utiliseraient avec ReadPhoto
au lieu de la méthode standard Read
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
- Utiliser le
LirePhoto
méthode pour extraire des données de l'image - Accéder à laOcrPhotoResultpropriété pour visualiser 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 IronOcr.Extension.AdvancedScan l'emballage.
Exemple de lecture de photos
La lecture de formats photo de haute qualité tels que tiff
et gif
est relativement simple avec IronOCR. Tout 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.
[{i :(
- Étant donné que Tiff contient plusieurs cadres dans 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
Étant donné que la plupart des navigateurs ne prennent pas en charge nativement le format TIFF, vous pouvez télécharger l'entrée TIFFici. 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
Le texte extrait de la saisie OCR.
Confiance : Une propriété "double" qui indique la confiance en la précision statistique d'une moyenne de chaque caractère, où un est le plus haut et 0 est le plus bas.
TextRegions : Une liste de la propriété "TextRegions" indiquant où se trouve le texte OCR et sa position 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
par rapport à la méthode read
standard réside dans l'objet résultat et le format de fichier qu'elle prend. LoadImageFrame
ne prend spécifiquement en charge que les formats tiff
et gif
et ne prend pas en charge des formats comme Jpeg
, et il y a quelques 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 multiples de haute qualité(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.
Fonctionnalité | TIFF (Tagged Image File Format) | JPG/JPEG (Joint Photographic Experts Group) |
---|---|---|
Compression | Sans perte ou non compressé (préserve la qualité) | Compression avec perte (réduit la qualité pour une taille de fichier plus petite) |
Taille du fichier | Grand (en raison de la haute qualité et de l'absence optionnelle de compression) | Plus petit, optimisé pour une utilisation web et un chargement rapide |
Qualité de l'image | Élevé (idéal pour un usage professionnel, conserve tous les détails) | Inférieur (en raison de la compression avec perte, une certaine qualité est sacrifiée) |
Profondeur de couleur | Prend en charge une profondeur de couleur élevée (jusqu'à 16 bits ou 32 bits par canal) | Couleur 24 bits (16,7 millions de couleurs) |
Cas d'utilisation | Photographie professionnelle, publication, numérisation, archivage | Images web, réseaux sociaux, photos quotidiennes |
Transparence | Prend en charge la transparence et les canaux alpha | Faitnonsoutenir la transparence |
Édition | Bon pour plusieurs modifications (pas de perte de qualité avec réenregistrement) | La qualité se dégrade avec les modifications et enregistrements répétés |
Compatibilité | Largement pris en charge dans les logiciels professionnels | Pris en charge universellement sur toutes les plateformes et tous les appareils |
Animation | Ne prend pas en charge l'animation | Ne prend pas en charge l'animation |
Métadonnées | Stocke des métadonnées étendues (EXIF, calques, etc.) | Stocke les métadonnées EXIF mais est plus limité |
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, le 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.
L'utilisation de la propriété confidence
dans OcrPhotoResults
ou dans toute classe utilisant l'interface IOcrResult
vous donnera une idée de la précision des résultats, permettant aux développeurs de tester, de réitérer et d'optimiser selon les besoins.
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.