Cómo leer fotos en C# con IronOCR

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

Cuando se trata de grandes volúmenes de documentos, especialmente imágenes escaneadas como archivos TIFF, extraer texto manualmente puede consumir mucho tiempo y ser propenso a errores humanos. Aquí es donde entra en juego el Reconocimiento Óptico de Caracteres (OCR), ofreciendo un método automatizado para convertir texto de imágenes en datos digitales con precisión. La tecnología OCR puede manejar la complejidad de las imágenes, como documentos escaneados o fotografías, y convertirlos en texto editable y buscable. Esto no solo acelera el procesamiento de documentos, sino que también asegura una extracción de datos más precisa en comparación con la transcripción manual.

Usar OCR en formatos como TIFF, que pueden ser difíciles de leer debido a su tamaño, profundidad de color o compresión, permite a las empresas y desarrolladores digitalizar y gestionar rápidamente grandes cantidades de datos. Con soluciones OCR como la función ReadPhoto de IronOCR, los desarrolladores pueden extraer texto de imágenes e incluso realizar operaciones avanzadas como buscar palabras clave o convertir datos escaneados en PDFs buscables. Esta tecnología es especialmente útil para industrias que manejan documentos legales, archivos o recibos, donde la recuperación eficiente de datos es crítica.

En este tutorial, proporcionaremos brevemente una entrada y un ejemplo de cómo usar ReadPhoto y cómo manipular el objeto de resultados. También discutiremos escenarios donde los desarrolladores podrían preferir usar ReadPhoto en lugar del estándar Read de IronOCR.

Para usar esta función, también debes instalar el paquete IronOCR.Extension.AdvancedScan.

como-título:2(Inicio Rápido: Usar ReadPhoto para Extraer Texto de Imágenes Complejas)

Comienza rápidamente: usa el método ReadPhoto de IronOCR en un OcrInput cargado con el marco de tu imagen para extraer todo el texto y las regiones de una sola vez. Está optimizado para TIFFs, GIFs y formatos similares con muchas fotos para una experiencia OCR fluida.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronOCR con el gestor de paquetes NuGet

    PM > Install-Package IronOcr

  2. Copie y ejecute este fragmento de código.

    var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Leer fotos Ejemplo

Leer formatos de fotos de alta calidad como tiff y gif es relativamente sencillo usando IronOCR. Primero, creamos una nueva variable y la asignamos como un OcrInput y luego cargamos la imagen usando LoadImageFrame. Finalmente, usamos el método ReadPhoto y obtenemos los resultados.

@@--SOPORTE-i-ABIERTO--@@

  • Debido a que Tiff contiene múltiples marcos dentro de una sola imagen, se necesita el parámetro PageNumber. Además, el índice comienza en 0, en lugar de 1.
  • El método actualmente solo funciona para inglés, chino, japonés, coreano y alfabeto latino.
  • Usar escaneo avanzado en .NET Framework requiere que el proyecto se ejecute en arquitectura x64. @@--CIERRE DE SOPORTE--@@

Entrada

Dado que la mayoría de los navegadores no soportan de forma nativa el formato TIFF, puedes descargar el archivo TIFF de entrada aquí. Para mostrar el archivo TIFF, lo convertí a WEBP.

Input

Código

: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].PageNumber;

// 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).PageNumber

' 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

Resultado

output

Texto: El texto extraído de la entrada OCR. Confianza: Una propiedad de "double" que indica la confianza estadística en la precisión de un promedio de cada carácter, siendo uno el más alto y 0 el más bajo. RegionesDeTexto: Una lista de la propiedad "RegionesDeTexto" que indica dónde se encuentra el texto OCR y su ubicación dentro de la entrada. En el ejemplo anterior, imprimimos el número de marco así como el rectángulo que contiene el texto.


Diferencia entre ReadPhoto y Read

La principal diferencia entre el método ReadPhoto comparado con el estándar Read es el objeto de resultado y el formato de archivo que admite. LoadImageFrame específicamente solo acepta tiff y gif y no soporta formatos como jpeg por varias razones.

Comparación entre imágenes TIFF y JPEG

TIFF como formato de archivo es sin pérdida y generalmente se utiliza para condensar múltiples páginas y múltiples marcos en un único formato. Se utiliza típicamente para almacenamiento de imágenes de alta calidad y múltiples imágenes (por ejemplo, documentos legales, imágenes médicas). Es mucho más complejo que los formatos estándar JPEG y como tal requiere un método diferente para extraer completamente el texto de él.

Además, las imágenes TIFF usan un método de compresión diferente, por lo que IronOCR tiene que usar un método especializado para descifrar el texto.

Aquí hay un desglose adicional entre TIFF y JPEG para comparación.

Función TIFF (formato de archivo de imagen etiquetada) JPG/JPEG (Grupo Conjunto de Expertos en Fotografía)
Compresión Sin pérdida o sin comprimir (preserva la calidad) Compresión con pérdida (reduce la calidad para archivos de menor tamaño)
Tamaño del archivo Grande (debido a la alta calidad y la falta opcional de compresión) Más pequeño, optimizado para uso web y carga rápida.
Calidad de imagen Alto (ideal para uso profesional, conserva todos los detalles) Inferior (debido a la compresión con pérdida, se sacrifica algo de calidad)
Profundidad de Color Admite alta profundidad de color (hasta 16 bits o 32 bits por canal) Color de 24 bits (16,7 millones de colores)
Caso de uso Fotografía profesional, publicación, escaneo y archivo. Imágenes web, redes sociales, fotos cotidianas.
Transparencia Admite transparencia y canales alfa. No admite transparencia
Edición Bueno para múltiples ediciones (sin pérdida de calidad al volver a guardar) La calidad se degrada con ediciones y guardados repetidos
Compatibilidad Ampliamente compatible con software profesional Compatible universalmente con todas las plataformas y dispositivos
Animación No admite animación No admite animación
Metadatos Almacena metadatos extensos (EXIF, capas, etc.) Almacena metadatos EXIF pero es más limitado

Diferentes escenarios

Los desarrolladores tendrán que considerar cada caso de uso en producción para optimizar aún más y permitir que sus aplicaciones funcionen de manera efectiva. Aunque ReadPhoto está diseñado para imágenes complejas como TIFF como se mencionó anteriormente, el resultado se procesaría lentamente. Por otro lado, JPEG puede ser de menor calidad pero la operación generalmente sería más rápida. Sin embargo, la calidad de la imagen, como tener ruido, resultaría en una baja tasa de confianza con el OCR.

Usar la propiedad confianza en los OcrPhotoResults o en cualquier clase que use la interfaz IOcrResult te daría una idea de qué tan precisos son los resultados, permitiendo a los desarrolladores probar, reiterar y optimizar como deseen.

Los desarrolladores deben encontrar un equilibrio entre la eficiencia y la precisión, asegurando que las imágenes cumplan con un cierto umbral para la consistencia.

Preguntas Frecuentes

¿Qué es el método ReadPhoto en C#?

El método ReadPhoto en IronOCR para C# está diseñado para extraer texto de formatos de imagen complejos como TIFF y GIF, convirtiéndolos en datos digitales buscables mediante el Reconocimiento Óptico de Caracteres (OCR).

¿Por qué debería usar ReadPhoto en lugar de la función estándar Read?

ReadPhoto está optimizado para manejar formatos de imagen complejos como TIFF y GIF, que requieren un procesamiento especial debido a sus características de compresión y calidad, haciéndolo más adecuado para estos tipos de imágenes en comparación con la función estándar Read.

¿Cómo puedo asegurar una extracción de texto óptima usando OCR en C#?

Para asegurar una extracción de texto óptima con OCR en C#, considera la calidad y el formato de la imagen. Usar el método ReadPhoto de IronOCR para formatos complejos y de alta calidad como TIFF puede mejorar la precisión y eficiencia.

¿Qué formatos de imagen soporta el método ReadPhoto?

El método ReadPhoto en IronOCR soporta formatos de imagen complejos como TIFF y GIF, que son ideales para tareas de extracción de texto de alta calidad.

¿Cuáles son los beneficios de convertir archivos TIFF usando OCR?

Convertir archivos TIFF usando OCR con el método ReadPhoto de IronOCR permite la transformación de imágenes de alta calidad en datos digitales buscables y editables, lo cual es beneficioso para la gestión y archivo de documentos.

¿Cómo mejora la tecnología OCR el procesamiento de documentos?

La tecnología OCR automatiza la conversión de texto de imágenes a datos digitales, aumentando significativamente la velocidad de procesamiento y la precisión, especialmente al gestionar grandes volúmenes de documentos.

¿Qué factores influyen en la elección de métodos de procesamiento de imágenes en OCR?

Los factores que influyen en la elección incluyen el formato y la calidad de la imagen, la velocidad de procesamiento, y los requisitos específicos de uso. ReadPhoto de IronOCR es ideal para imágenes complejas y de alta calidad, mientras que otros métodos pueden ser más eficientes para formatos más simples.

¿Puede el método ReadPhoto de IronOCR ser utilizado para imágenes a color?

Sí, el método ReadPhoto de IronOCR puede procesar imágenes a color, particularmente en formatos como TIFF y GIF, permitiendo una extracción precisa de texto en documentos a todo color.

¿Qué papel juega la propiedad 'confidence' en los resultados de OCR?

La propiedad 'confidence' en los resultados de OCR proporciona una medida estadística de la precisión de la extracción de texto, ayudando a los desarrolladores a evaluar la fiabilidad de los datos digitalizados.

¿Cómo pueden los desarrolladores usar los resultados de OCR de ReadPhoto en sus aplicaciones?

Los desarrolladores pueden usar los resultados de OCR de ReadPhoto de IronOCR accediendo a la propiedad OcrPhotoResult, que incluye texto extraído, puntuaciones de confianza y regiones de texto, permitiendo un procesamiento de datos adicional e integración en aplicaciones.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 5,167,857 | Version: 2025.11 recién lanzado