http://www.manejandodatos.es/2014/11/que-facil-es-trabajar-con-reconocimiento-optico-de-caracteres-en-python/
Qué facil es el reconocimiento óptico de caracteres en Python
Pues … me he quedado gratamente sorprendido de lo fácil que es hacer el reconocimiento óptico de caracteres en Python, siempre que tengas instaladas las herramientas necesarias.Todo vino porque recibí un whatsApp con el menú del comedor del cole, y pensé si tal vez no podía analizar …. qué le ponen de comer a los chavales! De momento, vamos con el tratamiento de imágenes y el reconocimiento de caracteres.
Preparando las herramientas
La verdad es que nada cómo una pequeña búsqueda para que te indiquen el camino. El caso es que la página que me dio las pistas fue esta: http://fosshelp.blogspot.com.es/2013/04/how-to-convert-jpg-to-tiff-for-ocr-with.html. Lo primero es instalar PIL, que es una librería para trabajar con imágenes. En el caso de que trabajes con Anaconda, mi caso, no hace falta que instales nada, pues … es una de los paquetes incluidos en la distribución.Cómo podeis comprobar, se importa correctamente y sin fallos (si necesitas instalar PIL, aquí tienes una entrada anterior de cómo instalar paquetes en Python). Así que, lo siguiente es descargar e instalar tesseract-ocr.
Le damos a siguiente, y en uno de los pasos, se descarga los elementos que necesita:
Y llegamos al final:
El tercer paso es descargar la librería PyTesser (https://code.google.com/p/pytesser/downloads/detail?name=pytesser_v0.0.1.zip&can=2&q=), que es la que permite trabajar a Tesser desde Python. El fichero se descomprime en el mismo directorio donde guardaremos nuestro código.
Probando OCR con una imagen
Ya solo falta el disponer de la imagen, y aplicar el siguiente código:
1
2
3
4
5
6
7
8
9
10
| from PIL import Image from pytesser import * image_file = 'menu.tif' im = Image. open (image_file) text = image_to_string(im) text = image_file_to_string(image_file) text = image_file_to_string(image_file, graceful_errors = True ) print "=====output=======\n" print text |
Cómo podeis ver, el reto se plantea difícil. Y este es el resultado:
Cómo podeis ver, funciona, si bien la imagen no era la mejor para trabajar.
Comprobando que funciona
Si quereis comprobar lo bien que funciona este código, no teneis sino que cambiar el nombre de la imagen por la que incluye PyTesser de ejemplo, y vereis que lo hace perfecto!y el resultado es:
En fin, espero que os sirva.
De momento, para analizar la comida del comedor del cole necesito, bien mejorar las fotos del menú, o bien usar otro método. Pero … te lo cuento otro día!
Buena información para principiantes. Gracias.
ResponderEliminaraprender python