OCR con la interfaz Tesseract


¿Cómo OCR un archivo tiff usando la interfaz de Tesseract en c#?
Actualmente solo sé cómo hacerlo usando el ejecutable.

Author: Joris Schellekens, 2008-08-27

5 answers

El código fuente parecía estar orientado para un ejecutable, es posible que deba volver a cablear las cosas un poco para que se construya como una DLL en su lugar. No tengo mucha experiencia con Visual C++, pero creo que no debería ser demasiado difícil con un poco de investigación. Mi conjetura es que alguien pudo haber hecho una versión de la biblioteca ya, usted debe intentar Google.

Una vez que tenga el código tesseract-ocr en un archivo DLL, puede importar el archivo a su proyecto de C# a través de Visual Studio y hacer que cree clases de envoltura y hacer todas las cosas de clasificación para usted. Si no puede importar, DllImport le permitirá llamar a las funciones de la DLL desde el código C#.

Luego puede echar un vistazo al ejecutable original para encontrar pistas sobre qué funciones llamar para OCR correctamente una imagen tiff.

 10
Author: chakrit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-27 18:02:25

Echa un vistazo a tessnet

 39
Author: Mauricio Scheffer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 14:14:37

El programa C# inicia tesseract.exe y luego lee el archivo de salida de tesseract.exe.

Process process = Process.Start("tesseract.exe", "out");
process.WaitForExit();
if (process.ExitCode == 0)
{
    string content = File.ReadAllText("out.txt");
}
 6
Author: linquize,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-10 05:42:29

Hoy descubrí que EMGU ahora incluye una envoltura de Tesseracto. Si bien el número de DLL no administrados de la lib de opencv puede parecer un poco desalentador, no es nada que una copia rápida a su directorio de salida no cure. A partir de ahí, el proceso real de OCR es tan simple como tres líneas:

Tesseract ocr = new Tesseract(Path.Combine(Environment.CurrentDirectory, "tessdata"), "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY);
this.ocr.Recognize(clip);
optOCR.Text = this.ocr.GetText();

"robomatics" armó un muy buen video de youtube que demuestra una solución simple pero efectiva.

 6
Author: b_levitt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-06 00:58:13

Descargo de responsabilidad: Trabajo para Atalasoft

Nuestro módulo OCR es compatible con Tesseract y si eso no es lo suficientemente bueno, puede actualizar a un motor mejor y simplemente cambiar una línea de código (proporcionamos una interfaz común para múltiples motores OCR).

 0
Author: Lou Franco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-29 12:22:17