Eliminar imágenes que estén dentro de imágenes

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Eliminar imágenes que estén dentro de imágenes

Mensaje por Jonny »

No se si esto será posible, seguramente sí, aunque a mi no se me ocurre muy bien como (ni idea de imagen digital).

Lo que quiero es, quitar las posibles imágenes que hayan dentro de una imagen.

Por ejemplo, escaneamos una página de un libro, en la que hay texto y un dibujo.
La idea es, dejar sólo el texto.

Pero no haciendo OCR, quiero que en la imagen escaneada quede sólo el texto, precisamente para luego pasarle un motor OCR.

Esto quiero hacerlo porque entiendo, que así el motor OCR trabajará mejor, aunque quizás me equivoque, pero las pruebas que he hecho con Tesseract por ejemplo, me da muchos mejores resultados con imágenes que no contienen imágenes, que con las que sí las contienen. Así pues, se me ha ocurrido procesar la imagen antes de pasarle el OCR, y una de las cosas que se me ha ocurrido ha sido eliminar todo lo que no sea texto.

¿Sabéis si hay algún código de ejemplo hecho para esto, como hacerlo...?.

Salu2!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Eliminar imágenes que estén dentro de imágenes

Mensaje por BasicOs »

Hola Jonny
A ver si vemos algo de OCRs Open Source como el que usas.
Yo la manera mas sencillaque usaría para separar el texto de las imágenes seria usando el interlineado que es una línea de puro blanco que se va a interrumpir cuando exista algo que no es texto. Con las funciones pixel puedes buscar estas líneas y seleccionar lo q tenga interlineado.
También puedes usar el parámetro de los pixel que te detecta un cambio brusco de masa de pixeles. Ya q donde hay texto siempre es similar pero donde hay imagen da un valor de 1 en la función al haber cambio. Cogería el tamaño de 3 o 4 letras teniendo en cuenta que los espacios en tre palabras son un espacio y de que si hay cambio y es todo blanco, no habría imagen.
Al final puedes tener las coordenadas de las zonas de pixeles gráfico y las de letras. También puedes borrar la imagen y pasarlo a blanco si detectas un borde diferentes a los de las letras. Es decir q no es un cambio de blanco a negro.
También puedes usar algún programa en el mercado que te lo limpie

Aquí detectar un cambio brusco de un pixel http://www.emesn.com/autoitforum/viewto ... =19&t=2180
Y en los sub foros de OCRs encontraras mas código
Salu22:)
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: Eliminar imágenes que estén dentro de imágenes

Mensaje por Jonny »

Bueno, no voy a hacer yo el OCR, es demasiado complicado... La idea es limpiar la imagen, y pasarle luego un motor OCR, pero no hecho por mi, si no Tesseract, que es opensource y tiene buenas críticas.

Tendré que mirar la forma que dices de limpiar la imagen, porque yo no tengo ni idea de imagen digital... así, que una librería que me limpiara la imagen sería perfecto.
En realidad, quisiera una librería (opensource a ser posible) que además de quitar las imágenes dentro de una imagen, limpie el ruido, como sombras, líneas... etc, para dejar sólo el texto lo más legible posible, para obtener mejores resultados en el OCR.

He descargado OpenCV que dicen que es de lo mejor para el procesamiento de imágenes, pero un sdk tan profesional es un mundo, y estudiarlo lleva mucho tiempo, entre otras cosas porque la documentación está en inglés... Pero seguro que con esas librerías (también opensource) puede limpiarse la imagen, aunque aún no he encontrado la forma.
También encontré en el foro inglés una librería: FreeImage, con montón de funciones, pero igualmente su documentación es en inglés y bastante larga, así que lleva tiempo estudiarla. Y no se si con ella puede limpiarse la imagen...

Si a alguien le interesa, puedo buscar el link de FreeImage y pasarlo (no lo tengo porque hace ya días que lo encontré) ;).

Seguro que todo esto puede hacerse con alguna de las dos librerías que he mencionado, pero ¿como?... Si alguien tiene idea?...

Salu2!
Responder