Reconocimiento óptico de caracteres chinos en C# y .NET

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

Otras versiones de este documento:

IronOCR es un componente de software C# que permite a los programadores .NET leer texto de imágenes y documentos PDF en 126 idiomas, incluido el chino. El Paquete de Idioma Chino contiene caracteres tanto en chino simplificado como en chino tradicional.

Es una derivación avanzada de Tesseract, construida exclusivamente para desarrolladores de .NET, y supera regularmente a otros motores de Tesseract tanto en velocidad como en precisión. La biblioteca permite el reconocimiento de imágenes y documentos de diferentes formatos en varios idiomas, incluido el chino. Admite más de 125 idiomas y ofrece un alto nivel de precisión en el reconocimiento en comparación con la competencia. La API de IronOCR ha sido diseñada pensando en la extensibilidad y la personalización. Puedes ayudar a IronOCR a lograr un alto rendimiento y precisión añadiendo tus datos de ajuste o características al rastreador. IronOCR utiliza numerosas técnicas de reconocimiento óptico de caracteres. Podemos utilizarlo en un PC con Windows, Linux, macOS y otras plataformas famosas.

Contenido de IronOcr.Languages.Chinese

Este paquete contiene 352 idiomas de OCR para .NET:

  • ChineseSimplified
  • ChineseSimplifiedBest
  • ChineseSimplifiedFast
  • ChineseSimplifiedVertical
  • ChineseSimplifiedVerticalBest
  • ChineseSimplifiedVerticalFast
  • ChineseTraditional
  • ChineseTraditionalBest
  • ChineseTraditionalFast
  • ChineseTraditionalVertical
  • ChineseTraditionalVerticalBest
  • ChineseTraditionalVerticalFast

Descargar

Podemos descargar el Paquete de Idioma Chino [中文 (Zhōngwén)] desde los siguientes enlaces:

Uso de IronOCR para el idioma chino

Crear o abrir un proyecto de C

Para empezar con IronOCR, tenemos que crear un proyecto C# .NET. Estamos usando Visual Studio 2022 para este propósito. Puede elegir una versión en función de sus necesidades. Se recomienda utilizar la última versión de Visual Studio para disfrutar de una experiencia fluida. Crearemos una interfaz GUI para seleccionar la imagen. También podemos utilizar IronOCR en una aplicación de consola dando la ruta directa de la imagen. Implementa los siguientes pasos para crear un proyecto en C# en Visual Studio 2022:

  • Abre Visual Studio 2022.
  • Haga clic en el botón "Crear un nuevo proyecto".
Chinese Ocr 1 related to Crear o abrir un proyecto de C
  • Escriba "Windows" en la barra de búsqueda, seleccione la "Aplicación de Windows Form" de los resultados de búsqueda y haga clic en el botón "Siguiente".
Chinese Ocr 2 related to Crear o abrir un proyecto de C
  • Da un nombre al proyecto. Asigno el nombre "ChineseOCR" al proyecto. Después del nombre, haga clic en el botón "Siguiente".
Chinese Ocr 3 related to Crear o abrir un proyecto de C
  • Seleccione el .NET framework en la siguiente pantalla. Seleccione el .NET framework según las necesidades de su proyecto. Estamos seleccionando la versión .NET 5.0 para este tutorial.
Chinese Ocr 4 related to Crear o abrir un proyecto de C
  • Después de seleccionar, haz clic en el botón "Create". Creará fácilmente el proyecto de C# Windows Form en Visual Studio.

El proyecto ya está creado y listo para su uso en la biblioteca IronOCR. También podemos utilizar el proyecto de C# ya existente. Abra el proyecto e inicie la instalación de la biblioteca IronOCR. La siguiente sección explorará los métodos para instalar la biblioteca IronOCR en proyectos C#.

Instalación

Uso del Administrador de paquetes NuGet

Para instalar la biblioteca IronOCR con el Administrador de Paquetes NuGet, debemos abrir la interfaz del Administrador de Paquetes NuGet. Siga los siguientes pasos para instalar la biblioteca IronOCR:

  • Haga clic en "Herramientas" en el menú principal, en el menú desplegable, pase el cursor sobre "NuGet Package Manager" y seleccione "Administrar NuGet Package Manager para la solución"
Chinese Ocr 5 related to Uso del Administrador de paquetes NuGet
  • Esto abrirá la interfaz del Administrador de Paquetes NuGet. Vaya a la pestaña de navegación y busque IronOCR en chino. Seleccione el paquete adecuado en los resultados de la búsqueda y haga clic en el botón "Instalar" para instalarlo.
Chinese Ocr 6 related to Uso del Administrador de paquetes NuGet
  • Comenzará con la instalación de la biblioteca. Después de la instalación, podrás usar la biblioteca IronOCR en tu proyecto.

Uso de la consola del administrador de paquetes

Usar una consola siempre es una opción fácil. También podemos instalar la biblioteca IronOCR mediante la consola del gestor de paquetes. Siga los pasos indicados para instalar la biblioteca IronOCR:

  • Abre la Consola del Administrador de Paquetes en Visual Studio. Normalmente se encuentra en la parte inferior de Visual Studio.
  • Escriba el siguiente comando en la consola:

    Install-Package IronOCR.Languages.Chinese
  • Verás el progreso de la instalación de la biblioteca en la consola. Instalará la biblioteca automáticamente. Tras la instalación, nuestro proyecto estará listo para la biblioteca IronOCR.

Ejemplo de código: OCR para el idioma chino

Ahora es el momento de escribir el código para implementar la biblioteca IronOCR para el idioma chino. En primer lugar, tenemos que desarrollar el frontend para seleccionar el archivo de imagen. Veamos cómo hacerlo.

Desarrollo del frontend

Usaremos los elementos del "Toolbox" para diseñar el frente. Crearemos un botón, un cuadro de imagen, un cuadro de texto enriquecido y dos etiquetas. Arrastraremos y soltaremos estos elementos desde la caja de herramientas y los colocaremos en el formulario de windows. Manejaremos estos elementos con estilo.

El botón se utilizará para seleccionar el archivo de imagen del PC. Picture Box cargará el archivo de imagen seleccionado y Rich Textbox mostrará el texto de salida. Puedes ajustar el tamaño de cada elemento según tus necesidades. El diseño final del frontend se verá así:

Chinese Ocr 7 related to Desarrollo del frontend

Esta ventana aparecerá cuando ejecutes el proyecto. Hemos configurado la alineación de las ventanas para que se formen en el centro de la pantalla. Así, esta pantalla aparecerá en el centro.

Nuestro frontend está listo. A continuación, es hora de añadir la funcionalidad backend del botón.

Código backend para IronOCR

Primero tenemos que importar el espacio de nombres IronOCR para utilizarlo en nuestro código. Escriba la siguiente línea en la parte superior del archivo:

using IronOCR;
using IronOCR;
Imports IronOCR
$vbLabelText   $csharpLabel

Utilizaremos el botón "Seleccionar imagen" para seleccionar la imagen y cargarla en el cuadro de imagen. IronOCR procesará la imagen de texto chino simplificado y mostrará el texto de salida en el cuadro de texto enriquecido. Añadamos la funcionalidad del botón haciendo doble clic en él. Escriba las siguientes líneas de código para añadir la funcionalidad descrita:

private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = Ocr.Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

Ocr.Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = Ocr.Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
Private Sub btn_image_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim open As New OpenFileDialog()
	If open.ShowDialog() = DialogResult.OK Then
		' display image in picture box  
		img_image.Image = New Bitmap(open.FileName)

		Dim Ocr = New IronTesseract()

Ocr.Language = OcrLanguage.ChineseTraditional

Using Input = New OcrInput(open.FileName)
			Dim Result = Ocr.Read(Input)

			txt_output.Text = Result.Text
End Using
	End If
End Sub
$vbLabelText   $csharpLabel

Cuando un usuario haga clic en el botón, aparecerá un cuadro de diálogo para seleccionar la imagen. Cuando el usuario seleccione la imagen, ésta se cargará automáticamente en el cuadro de imagen. Utilizamos Bitmap() para imprimir imágenes en el cuadro de imagen. A continuación, IronOCR convertirá las imágenes en texto chino. Establecimos Ocr. Language to ChineseTraditional para reconocer texto en chino tradicional. Ocr. La función de lectura leerá el proceso y almacenará el resultado del OCR en la variable Resultado. Si necesita guardar el texto en formato PDF, texto o HTML, utilizará la función SaveAs para guardar el archivo en cualquier formato de salida que desee - IronOCR soporta múltiples formatos de salida.

Ejecutar el proyecto

Ahora es el momento de ejecutar el proyecto. Haz clic en el botón Ejecutar en Visual Studio. Veremos esta pantalla en nuestra pantalla.

Chinese Ocr 8 related to Ejecutar el proyecto

Haz clic en el botón "Select Image". Se abrirá el cuadro de diálogo Seleccionar archivos. Seleccione un archivo de imagen y pulse Intro.

Chinese Ocr 9 related to Ejecutar el proyecto

Se cargará en el cuadro de imagen, se escaneará automáticamente la imagen y se mostrará el resultado en el cuadro de texto.

Chinese Ocr 10 related to Ejecutar el proyecto

Este es el resultado de la imagen que seleccionamos. IronOCR también permite leer y escanear archivos PDF. Podemos utilizar el formato editable de los archivos PDF para escanear y reconocer el texto mediante IronOCR. También puede realizarse en diferentes idiomas. IronOCR puede convertir el documento PDF existente en un PDF en el que se puedan realizar búsquedas. IronOCR tiene muchos filtros de imagen para que las imágenes sean claras de ver y entender. Estos son los filtros:

  • Input.Binarize()
  • Entrada.Contraste()
  • Input.Deskew()
  • Input.DeNoise()
  • Input.Dilate()
  • Input.MejorarResolución(300)

Todas estas funciones aumentan la visibilidad de los personajes. IronOCR utiliza estas funciones para aclarar y hacer un PDF con capacidad de búsqueda. Veamos cómo hacerlo:

using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddPdf("scan.pdf") Input.Deskew()
	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

Licencias

IronOCR es gratuito para el desarrollo. Puedes utilizar activamente todas sus funciones de forma gratuita. IronOCR también ofrece una prueba gratuita para producción sin necesidad de pago. Iron Software también ofrece actualmente una oferta popular: una suite de cinco productos de software por el precio de solo dos. Simplemente pague la cuota de dos productos de software una vez y podrá obtener los cinco productos, incluidos IronPDF y IronXL. Puedes encontrar más información en este enlace sobre licencias.