Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Tesseract Gambas (antes Python)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Python 
 
Bueno traduje todo lo que pude. y le agregue un poco de chimichurri  
Dejo el codigo con un formulario que permite seleccionar el pdf (gracias a turbopdf de jsbsan) y luego permite hacer dos tipos de ocr el de tabla y el de texto plano.
De momento funciona solo el de texto plano
El metodo que revisa pixel por pixel de la imagen para detectar las lineas horizontales y las verticales no lo entendi, asi que lo comente para que no "moleste" pero estaria buenisimo que alguno de ustedes que maneje los pixeles y todas esas movidas y le ponga el toque final. para luego pasar a la parte de ocr por areas del la imagen segun las coordenadas de las lineas antes mensionadas.

Saludos.

tesseract-frontend.tar.gz
Descripción: Tesseract front-end 
Descargar
Nombre del archivo: tesseract-frontend.tar.gz
Tamaño: 20.03 KB
Descargado: 65 veces
tesseract-frontend.tar.gz
Descripción: Tesseract front-end 
Descargar
Nombre del archivo: tesseract-frontend.tar.gz
Tamaño: 20.03 KB
Descargado: 65 veces
tesseract-frontend.tar.gz
Descripción: Tesseract front-end 
Descargar
Nombre del archivo: tesseract-frontend.tar.gz
Tamaño: 20.03 KB
Descargado: 65 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Gambas (antes Python) 
 
Bueno logre extraer lineas horizontales (las coordenadas) de una imagen simple. use el método del post.
https://foro.gambas-es.org/viewtopi...highlight=pixel
Pero cuando cargo una imagen mas grande se vuelve tremendamente lento (como lo advierte Jguardon).
¿Alguien me puede orientar sobre como hacer mejor este código?

Saludos.

Public Sub btnTest_Click()

Dim intN, intL, intX, IntY, intX1, IntY1, intX2, IntY2 As Integer
Dim strColor1, strColor2, strColors, strX1, strX2, strJump As String
Dim pioPage As Picture
Dim intWidth As Integer, intHeight, intCounter, intLineRef, intLineActual As Integer
Dim inxHorizontalX1 As New String[]
Dim inxHorizontalX2 As New String[]

pioPage = Picture["algunaimagensimple.png"]

intWidth = pioPage.Width
intHeight = pioPage.Height
intLineRef = Sqr(CFloat(intWidth) ^ 2 + CFloat(intHeight) ^ 2)
intLineRef = intLineRef / 4

inxHorizontalX1.Clear
inxHorizontalX2.Clear

'"FFFFFF" Blanco // '"000000" Negro

Inc Application.Busy

    For IntY = 0 To intHeight - 1

              For intX = 0 To intWidth - 1
                              
                strX1 = Str(Hex$(pioPage.Image[intX, intY], 6))
                      If strX1 = "000000" Then
                              intX1 = intX
                              intX2 = intX
                              
                              intL = intX + 1
                              strX2 = Str(Hex$(pioPage.Image[intL, intY], 6))

                                    Repeat
                                      Inc intL
                                      strX2 = Str(Hex$(pioPage.Image[intL, intY], 6))
                                      intX2 = intL
                                    Until strX2 = "FFFFFF"
      
                                           If (intX2 - intX1) > 300 Then 'intLineRef Then
                                             Print Str(intX1) & ", " & Str(intY) & "---------------" & Str(intX2) & ", " & Str(intY)
                                                inxHorizontalX1.Add(intX1)
                                                inxHorizontalX2.Add(intX2)
                                          intX = intX2 + 1
                                          Endif

                      Endif

              Next

    Next

Dec Application.Busy

End

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Gambas (antes Python) 
 
Sorry, ya sabes que yo de gráficos ni papa...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Gambas (antes Python) 
 
Tincho dice:

Citar:

...cuando cargo una imagen mas grande se vuelve tremendamente lento (como lo advierte Jguardon).


No sé la respuesta, pero el análisis de imagen al nivel de lo que pretendes me hizo preguntarme lo mismo que te pasa ahora, ¿es lento el análisis con un lenguaje interpretado?.
Resulta que hace un año atrás, en el lado oscuro de Dart Gates, pretendía hacer el efecto "Desenfoque Gaussiano", busqué información al respecto (vectores de pixeles me aparecieron por ahí los que debía promediar con el cercano, o algo así.) Luego encontré porciones de código en Vb.net... y era muy leeeeento.  Finalmente encontré un código que además de VB.Net tenía código en C++ y con eso aceleraba el proceso.  Por lo tanto, para tu tema, creo que sí en Python no hay problema de velocidad en el proceso en cuestión, en gambas tampoco debería haberlo; pero por el contrario si Python se ve afectado quizá sea necesario el uso en gambas de una rutina hecha en el querido C.

Ahora que lo pienso, ¿no será Tesserac el que hace ese análisis que necesitas?.

Saluos y suerte...

PS: Cuando me vine a la luz vi que con gambas lo que yo quería lo podía hacer comunicándome con Imagick.
 



 
vicr - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Gambas (antes Python) 
 
¿ Todo eso para hacer la función get_hlines de Python ?..  


Estoy un poco perdido, pero, ¿ por que usáis cadenas para los número hexadecimales en vez de números ?.
Las cadenas siempre serán más lentas.

 

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Gambas (antes Python) 
 
Shell escribió:  
¿ por que usáis cadenas para los número hexadecimales en vez de números ?.Las cadenas siempre serán más lentas.

Si, es verdad, probare usar los números directamente a ver que tal va.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Python 
 
me interesa el tema, tengo un viejo proyecto que requiere OCR de partes de la pantalla
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Python 
 
tercoIDE escribió:  
me interesa el tema, tengo un viejo proyecto que requiere OCR de partes de la pantalla

Bueno, mira de momento logro "leer" las coordenadas en pixeles de una imagen (pero re lento) si lo que necesitas es sacar texto de un area de la pantalla y conoces las coordenadas del área en cuestión es bastante fácil.
Decime mas datos y por ahí te puedo ayudar.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Python 
 
OK, supongamos que hago una captura de pantalla, o mejor aun de una ventana especifica, en especial esta:

pokerstars-screenshot

necesito saber los nombres de los jugadores y el dinero que tienen.

Aclaracion:
          Pokerstars permite pregramas "espias" que recolectan informacion de manos y las acumulan en una base de datos. Es mas, el soft mismo guarda un .TXT con info de cada mano jugada. Asi que esto es perfectamente legal.
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tesseract Python 
 
tercoIDE escribió:  
OK, supongamos que hago una captura de pantalla...

Lo que hice no sirve para hacer lo que dices, pues lee pixel por pixel para ver si es blanco o negro, y se "da cuenta" de se trata de una linea porque cuenta las veces que es negro si es una cantidad de veces igual o superior al patrón, la guarda en l alista de coordenadas, y ahí se termina todo.
La imagen que vos pasaste esta en colores y ademas los recuadros están organizados aleatoria mente.
Pero si lograsemos, mediante otro método, saber las lineas o las intersecciones entonces se podrá fraccionar la imagen y hacer ocr de cada parte.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes GEC: Controles Extendidos Para Gambas (ant... tincho Aplicaciones/Fragmentos de Código 80 Martes, 13 Diciembre 2016, 23:28 Ver último mensaje
tincho
No hay nuevos mensajes OCR Con Gambas Mediante Tesseract tercoIDE Aplicaciones/Fragmentos de Código 15 Domingo, 25 Diciembre 2016, 19:11 Ver último mensaje
tercoIDE
No hay nuevos mensajes [Python] Por Qué Python Debería Ser El P... Shell Python 2 Martes, 04 Julio 2017, 21:01 Ver último mensaje
vuott
No hay nuevos mensajes [Python] Guido Van Rossum Abandona La Supe... Shell Python 5 Miercoles, 10 Octobre 2018, 08:59 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron