Cómo detectar rotación de página para OCR en C# | IronOCR

Cómo detectar la rotación de página en C# con IronOCR

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

El método DetectPageOrientation de IronOCR identifica automáticamente los ángulos de rotación de la página (0°, 90°, 180°, 270°) en documentos e imágenes PDF. Devuelve una propiedad RotationAngle para cada página, lo que permite la corrección programática de la orientación con puntuaciones de confianza para una extracción precisa del texto.

La detección de la rotación de páginas identifica si la página de un documento ha girado 0, 90, 180 o 270 grados en el sentido de las agujas del reloj o en sentido contrario. Esta información garantiza que las páginas se muestren o procesen en su orientación correcta para una representación y extracción de texto precisas.

Inicio rápido: Utilizar DetectPageOrientation para identificar la rotación de página

<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->

Este ejemplo muestra el uso de DetectPageOrientation de IronOCR en un PDF para acceder a la propiedad RotationAngle. Proporciona una rápida detección y corrección de la rotación de páginas con un código mínimo.

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 rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation();
    Console.WriteLine(rotationResults.First().RotationAngle);
  3. Despliegue para probar en su entorno real

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


¿Cómo puedo detectar la rotación de páginas en mis documentos?

<Descripción: Captura de pantalla que muestra el proceso paso a paso -->

Después de cargar un documento, utilice el método DetectPageOrientation para identificar la rotación de cada página. Este método admite 0, 90, 180 y 270 grados. Para imágenes sesgadas más allá de estas rotaciones estándar, utilice el método Deskew de filtros de corrección de imagen de IronOcr. A continuación, vuelva a girar la imagen a su orientación original utilizando el ángulo detectado. Trabajemos con un PDF de ejemplo.

Por favor notaEsta función funciona mejor con documentos de texto denso.

:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation.cs
using IronOcr;
using System;

using var input = new OcrInput();

// Load PDF document
input.LoadPdf("Clockwise90.pdf");

// Detect page rotation
var results = input.DetectPageOrientation();

// Ouput result
foreach(var result in results)
{
    Console.WriteLine(result.PageNumber);
    Console.WriteLine(result.HighConfidence);
    Console.WriteLine(result.RotationAngle);
}
Imports IronOcr
Imports System

Private input = New OcrInput()

' Load PDF document
input.LoadPdf("Clockwise90.pdf")

' Detect page rotation
Dim results = input.DetectPageOrientation()

' Ouput result
For Each result In results
	Console.WriteLine(result.PageNumber)
	Console.WriteLine(result.HighConfidence)
	Console.WriteLine(result.RotationAngle)
Next result
$vbLabelText   $csharpLabel

¿Qué significan los resultados de la detección?

  • NúmeroDePágina: Índice de base cero de la página.
  • Ángulo de rotación: Ángulo de rotación en grados. Utilizar con el método Rotate para corregir la orientación.
  • AltaConfianza: Nivel de confianza en el resultado de la orientación para manejar casos extremos.

¿Cuándo debo utilizar valores de confianza altos?

La propiedad HighConfidence es crucial para documentos ambiguos o de baja calidad en los que la detección de rotaciones puede ser incierta. Los documentos con texto escaso, diseños inusuales o escaneados de mala calidad suelen arrojar puntuaciones de confianza más bajas. En estos casos, implemente una validación adicional o aplique filtros de corrección de calidad de imagen antes de la detección.

Utilice este valor para implementar estrategias de reserva o revisión manual para páginas con poca confianza. Por ejemplo, si la confianza cae por debajo del 80%, procesa la página con varias orientaciones y compara los resultados del OCR, o márcala para una revisión manual. Las funciones de visión por ordenador de IronOCR ayudan a identificar regiones de texto con mayor precisión en documentos complejos.

¿Cómo corregir la rotación detectada?

Después de identificar el ángulo de rotación, utilice el método Rotate en su objeto OcrInput para corregir la orientación antes del OCR. Esto garantiza una precisión óptima en el reconocimiento de texto. Para correcciones completas de la orientación, consulte la guía de corrección de la orientación de las imágenes. He aquí el proceso de corrección:

// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
    input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
// Apply rotation correction based on detection results
if (result.RotationAngle != 0)
{
    input.Rotate(360 - result.RotationAngle); // Rotate back to 0°
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Para los documentos que requieran un preprocesamiento adicional, considere la Clase OcrInput, que proporciona amplios métodos de preparación de documentos antes del procesamiento OCR.

¿Cómo puedo personalizar la velocidad y la precisión de detección?

<Descripción: Captura de pantalla que muestra el proceso paso a paso -->

El método DetectPageOrientation acepta un parámetro opcional para controlar el detalle de la detección. Al proporcionar OrientationDetectionMode enums, puede ajustar la velocidad de detección y la precisión en función de sus necesidades.

He aquí cómo llevarlo a cabo:

:path=/static-assets/ocr/content-code-examples/how-to/detect-page-rotation-detect-page-rotation-advanced.cs
using IronOcr;
using System;

using var input = new OcrInput();

// Load PDF document
input.LoadPdf("Clockwise90.pdf");

// Detect page rotation with Fast mode
var results = input.DetectPageOrientation(OrientationDetectionMode.Fast);

// Ouput result
foreach(var result in results)
{
    Console.WriteLine(result.PageNumber);
    Console.WriteLine(result.HighConfidence);
    Console.WriteLine(result.RotationAngle);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Qué modo de detección debo elegir?

Hay cuatro opciones de velocidad disponibles para OrientationDetectionMode:

AdvertenciaBalanced, Detailed, y ExtremeDetailed requieren el paquete IronOcr.Extensions.AdvancedScan. Estas opciones no están disponibles en Windows x86 y Mac ARM.

  • Rápido: Detección de alta velocidad con menor precisión. Ideal para borradores o procesamiento masivo donde la velocidad es crucial. Por defecto para DetectPageOrientation. Maneja miles de páginas eficientemente con soporte multihilo.
  • Equilibrado: Velocidad y precisión equilibradas. Adecuado para tareas de producción. Utiliza capacidades de extensión AdvancedScan para mejorar la precisión y mantener el rendimiento.
  • Detallado: Baja velocidad, alta precisión. La mejor opción para tareas precisas o críticas, especialmente documentos con diseños complejos o contenido mixto.
  • ExtremeDetailed: Velocidad más lenta, precisión más alta. Utilizar sólo cuando Detallado sea insuficiente o el texto esté muy sesgado y distorsionado.

¿Cuáles son las consideraciones comunes de rendimiento?

El rendimiento varía significativamente de un modo a otro. El modo rápido procesa cientos de páginas por minuto; ExtremeDetailed puede tardar segundos por página. Elija en función de los requisitos de precisión y las limitaciones de tiempo. Para un rendimiento óptimo:

  1. Resolución de imagen: Los ajustes DPI más altos mejoran la precisión pero aumentan el tiempo de procesamiento. 150-300 DPI suelen ser suficientes para la detección de rotación.
  2. Tipo de documento: Los documentos de texto denso se procesan con mayor rapidez y precisión que los de texto disperso. Utilice el Asistente de filtrado para optimizar la calidad de la imagen antes de la detección.
  3. Uso de recursos: Supervisar el uso de memoria al procesar grandes lotes. Implementar seguimiento del progreso para proporcionar comentarios y gestionar los recursos del sistema.
  4. Procesamiento en paralelo: Para operaciones masivas, utilice el multithreading de IronOCR para procesar varios documentos simultáneamente manteniendo la precisión.

¿Cómo se manejan los documentos de orientación mixta?

Para documentos de orientación mixta, procese cada página individualmente con DetectPageOrientation y, a continuación, aplique correcciones de rotación página por página antes del OCR. Esto garantiza una orientación adecuada independientemente del estado inicial. He aquí un enfoque eficaz:

// Process each page with individual rotation detection
for (int i = 0; i < results.Count; i++)
{
    var pageResult = results[i];

    // Apply rotation only to pages that need it
    if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
    {
        // Correct the specific page
        input.Pages[i].Rotate(360 - pageResult.RotationAngle);
    }
}
// Process each page with individual rotation detection
for (int i = 0; i < results.Count; i++)
{
    var pageResult = results[i];

    // Apply rotation only to pages that need it
    if (pageResult.RotationAngle != 0 && pageResult.HighConfidence)
    {
        // Correct the specific page
        input.Pages[i].Rotate(360 - pageResult.RotationAngle);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Para situaciones complejas que impliquen documentos escaneados de calidad variable o TIFFs de varias páginas, preprocesa cada página individualmente para obtener resultados óptimos.

Al procesar entradas de formato mixto, la clase OcrResult proporciona información detallada de la página, lo que permite una gestión de errores sofisticada y flujos de trabajo de control de calidad. Para entornos de producción de alto rendimiento, explore las opciones de Configuración rápida de OCR para equilibrar velocidad y precisión.

Si procesa documentos que contienen texto y códigos de barras, utilice las funciones OCR con lectura de códigos de barras y QR de IronOCR para extraer toda la información en una sola pasada, lo que mejora la eficacia.

Preguntas Frecuentes

¿Qué es la detección de rotación de páginas y por qué es importante?

La detección de la rotación de páginas identifica si la página de un documento se ha girado 0°, 90°, 180° o 270° grados. Esto es crucial para que IronOCR garantice que las páginas se procesan en su orientación correcta, lo que permite una extracción de texto y una renderización precisas a partir de PDF e imágenes.

¿Cómo puedo detectar rápidamente la rotación de páginas en un PDF utilizando C#?

Utilice el método DetectPageOrientation de IronOCR con un código mínimo: var rotationResults = new IronOcr.OcrInput().LoadPdf("doc.pdf").DetectPageOrientation(); Esto devuelve información de rotación para todas las páginas, accesible a través de la propiedad RotationAngle.

¿Qué ángulos de rotación se pueden detectar?

El método DetectPageOrientation de IronOCR puede detectar rotaciones estándar de 0°, 90°, 180° y 270° grados. Para imágenes torcidas más allá de estas rotaciones estándar, utilice el método Deskew de IronOCR de los filtros de corrección de imagen.

¿Qué información devuelve DetectPageOrientation?

El método devuelve tres propiedades clave para cada página: PageNumber (índice basado en cero), RotationAngle (rotación en grados para usar con el método Rotate de IronOCR) y HighConfidence (nivel de confianza para manejar casos extremos).

¿Cuándo debo utilizar la propiedad HighConfidence?

Utilice la propiedad HighConfidence cuando trabaje con documentos ambiguos o de baja calidad en los que la detección de la rotación pueda ser incierta. Los documentos con texto disperso, diseños inusuales o escaneados de baja calidad suelen devolver puntuaciones de confianza más bajas en IronOCR, lo que requiere una validación adicional o filtros de corrección de la calidad de la imagen.

¿Esta función funciona mejor con determinados tipos de documentos?

La función DetectPageOrientation de IronOCR funciona mejor con documentos con mucho texto. Para documentos con poco texto o diseños complejos, considere aplicar filtros de corrección de calidad de imagen antes de la detección para obtener resultados óptimos.

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
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 5,246,844 | Versión: 2025.12 recién lanzado