Viewing posts for the category Quick 'n Dirty

Programacion Multihilo en Python mediante Ejemplos

Mini - Ladrillo
En determinadas ocasiones, resulta necesario ejecutar varias tareas al mismo tiempo para ganar en velocidad de proceso. 
Estas tareas pueden ser similares o bien diferentes y a veces utilizan el mismo recurso simultaneamente o bien necesitan comunicarse entre ellos para coordinarse; esto puede dar problemas, pero la programación multihilo nos permite solucionar estas situaciones mediante varios recursos, cada uno adecuado o necesario en un caso u otro. 
Estos recursos son :
- Semáforos. Permiten acceder a un recurso y liberarlo cuando queramos.
- Bloqueos. Bloquean el recurso hasta que es liberado para su reutilización por parte de otro hilo.
- Condiciones. Este caso es similar a los anteriores, pero permite notificar cuando el recurso es liberado.
En los 3 casos, podemos definir el número de accesos simultáneos. Podría ser 1, 2 o los que queramos, siempre y cuando el recurso a utilizar aguante dicha carga sin fallar.
El Código
Comenzamos con algo sencillo: un solo hilo que se ejecuta de forma simultánea al hilo principal.
#!/usr/bin/python
Continue reading

Training Tesseract OCR

Training tesseract OCR

Tesseract es probablemente el motor de OCR mas preciso disponible actualmente. Combinado con Leptonica Image Processing Library puede leer una gran variedad de formatos de imágen y convertirlos a texto en unos 60 idiomas distintos. Fué uno de los 3 mejores motores de OCR en 1995 UNLV Accuracy test. Entre 1995 y 2006 se ha trabajado poco en él, pero desde entonces ha sido ampliamente mejorado por Google. Está liberado bajo licencia Apache License 2.0, esto es, se permite su uso comercial.

Tesseract-ocr, está incluído en los repositorios de la mayor parte de distribuciones Linux y también tiene versión para windows. Están disponibles para su uso, bases de datos para reconocimiento de los principales idiomas.

Si queremos incluír el reconocimiento de nuevas tipografías o idiomas, tendremos que hacer training del motor de OCR. Este training, se lleva a cabo de la siguiente manera:

Continue reading