Mise à jour février 16, 2025
Partager:

Comment lire des photos avec IronOCR

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

par Curtis Chau

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.

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 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.

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

Sortie

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.