PIL+OCR

lopz lowlifebob en gmail.com
Sab Nov 1 01:21:06 CET 2008


Hola []

Se me a dado por preguntar algo que me está rompiendo la cabeza xD
(tampoco es que sea muy pensandor)
pero suelo ahogarme en un vaso de agua... bueno directo al problema:

Resulta me puse a aprender a usar la librería PIL y para eso estaba
queriendo hacer un pequeño OCR
bueno, lo que tenía en mente era esto y pensaba plasmarlo a código
pero me trabé xD:

Hagamos de ejemplo que tenemos una i en una imágen de 3x7 osea la i
estaría en el medio, el palo larguito tendría 3 px, y el punto 1, osea
5 pixeles separados por un blanco (el que divide el palo del punto)

-Primero, abrir la imágen, si es a colores pues pasarlo a blanco y
negro todo (en esto he tenido problema)
quedaría una imagen limpia, RGB puro (0, 0, 0) y (255, 255, 255)
- Ahora toca recorrer pixel a pixel la imágen, con 2 bucles lo he logrado,
- Cargar una matrix con los pixeles de otra imagen igual de 3x7 donde
hayamos hecho todos los anteriores pasos (la idea es hacer 27 matrix's
para cada letra, para empezar vale)
- Aquí tenía que comparar comparar la matrix de la nueva imagen con
alguna de las otras 27, (esto no he logrado, pero puede que tarde
mucho, y peor si es grande la imágen)
- En la comparación pensaba comparar así el pixel 0,0 de la img con el
0,0 de la matrix anteriormente hecha, si era True, meter un 0, pero si
era false un 1, pero aquí el problema
ya que basta que 1 si UN pixel no sería igual para que de False, e iba
a dar que no es esa letra, entonces he aquí el dilema... ¿Cómo puedo
comparar ambos matrixs?
claro, la idea habría sido esta: poner 0 si es igual los pixeles
y..... poner una X cantidad de acuerdo a cuanta es la deferencia entre
pixeles comparados, osea que comparando con las 27 matrix la correcta
sería la que Menos errores se a encontrado a comparlas

creo que eso es todo, aquí esto, queriendo hacer esto pero que no se
me ocurre nada, también había pensado recorrer el pixel comparado de
forma espiral pero creo que estoy loco xD

Ya he leído algo de redes neurales y algo interesante en este blog [1]
que por cierto está interesante :p
quiero hacer algo así pero.. menos complicado jeje no creo que sea tan
difícil no??

No pongo código aquí por que es básico lo que he logrado, como he
dicho anteriormente los pasos que he logrado avanzar pero eso si.. no
sé si  estará correcto ni en teoría
si hay otras formas me gustaría saberlas y si ponen ejemplos mucho
mejor, a ver si logro completar el código lo paso a la lista.

Saludos!


[1] http://binsd.wordpress.com/2008/10/16/redes-neuronales-en-python-rna/

-- 
lopz es libre, usa --> GNU/linux gentoo
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es