c# - spanish - tesseract ocr traineddata
OCR con la interfaz de Tesseract (5)
Descargo de responsabilidad: trabajo para Atalasoft
Nuestro módulo de OCR es compatible con Tesseract y, si no es lo suficientemente bueno, puede actualizar a un mejor motor y simplemente cambiar una línea de código (proporcionamos una interfaz común para varios motores de OCR).
¿Cómo se OCR un archivo tiff utilizando la interfaz de Tesseract en c #?
Actualmente solo sé cómo hacerlo usando el ejecutable.
Eche un vistazo a tessnet
El código fuente parecía estar orientado a un ejecutable, es posible que necesite volver a cablear 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 algunas investigaciones. Supongo que alguien ya hizo una versión de la biblioteca, debes probar Google.
Una vez que tenga el código tesseract-ocr en un archivo DLL, puede importar el archivo en su proyecto C # a través de Visual Studio y hacer que cree clases contenedoras y realice todas las tareas de clasificación para usted. Si no puede importar, DllImport le permitirá llamar a las funciones en la DLL desde el código C #.
A continuación, puede echar un vistazo al archivo ejecutable original para encontrar pistas sobre qué funciones llamar para OCR correctamente una imagen tiff.
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");
}
Hoy descubrí que EMGU ahora incluye un contenedor Tesseract. Si bien la cantidad de dlls no administrados de opencv lib puede parecer algo desalentador, no es nada que una copia rápida en el directorio de salida no cure. A partir de ahí, el proceso de OCR real 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.