Comment lire des photos avec IronOCR

février 16, 2025
Mise à jour février 16, 2025
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

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.

Entrée

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)
$vbLabelText   $csharpLabel

Sortie

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.

FeatureTIFF (Tagged Image File Format)JPG/JPEG (Joint Photographic Experts Group)
CompressionLossless or uncompressed (preserves quality)Lossy compression (reduces quality for smaller file size)
File SizeLarge (due to high quality and optional lack of compression)Smaller, optimized for web use and fast loading
Image QualityHigh (ideal for professional use, retains all details)Lower (due to lossy compression, some quality is sacrificed)
Color DepthSupports high color depth (up to 16-bit or 32-bit per channel)24-bit color (16.7 million colors)
Use CaseProfessional photography, publishing, scanning, archivingWeb images, social media, everyday photos
TransparencySupports transparency and alpha channelsDoes not support transparency
EditingGood for multiple edits (no quality loss with resaving)Quality degrades with repeated edits and saves
CompatibilityWidely supported in professional softwareUniversally supported across all platforms and devices
AnimationDoes not support animationDoes not support animation
MetadataStores 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.