2010-07-03 10 views
5

Tengo una gran colección de imágenes escaneadas, y todas son un tanto sesgadas, con un área blanca alrededor de ellas.¿Cómo puedo detectar (y corregir) la inclinación en las imágenes?

Por lo tanto, estas imágenes tienen rectángulos de colores, rodeadas por una gran área blanca. El problema es que estos rectángulos de color no son paralelos al borde de la imagen.

Estoy seguro de que debe haber una forma de detectar mediante programación estos rectángulos de color, de modo que pueda rotar la imagen (desatornillándola así) y luego recortarla para dejar solo la parte interesante. Supongo que no estoy muy seguro de cómo se llama este proceso, por lo que tengo problemas para buscar una solución en Google.

¿Alguien sabe de un enfoque que me ayudaría a empezar? ¿Hay alguna biblioteca por ahí que deba investigar? ¿O el nombre de un algoritmo que ayudaría?

Estoy planeando usar Java para este proyecto, pero aún no he comenzado, por lo que estoy abierto a las sugerencias de la biblioteca en cualquier idioma. transformar

Respuesta

3
  • detección de bordes
  • Hough (si todos los rectángulos en una imagen tienen la misma inclinación) de detección de contorno
  • rectángulo (componente conectado contorno, área, entonces rectángulo mínimo de delimitación)
+0

Gracias! Una búsqueda de Hough Transform me llevó a http://www.recognition-software.com/image/deskew/, que no solucionó mi problema de inmediato, pero pude modificar un poco el código para obtenerlo para trabajar muy bien – pkaeding

+1

Esta es una página rota. ¿Podría corregir el enlace? –

+0

¿Fue subsumido por Tess4j? – wprl

1

Usted podría también pruebe scikit-image http://scikit-image.org/docs/dev/auto_examples/.

Es una gran biblioteca para la transformación de hough, pero también tiene otros métodos como la transformación de radón y las transformaciones geométricas para este tipo de tareas.

Esta es una biblioteca de Python.

+0

guau, ¡esto se ve muy útil! – pkaeding

1

Alyn es un paquete de terceros para detectar y corregir el sesgo en las imágenes que contienen texto. Utiliza Canny Edge Detection y Hough Transform para encontrar sesgo.

para detectar la inclinación, basta con ejecutar

./skew_detect.py -i image.jpg 

Para corregir la inclinación, ejecute

./deskew.py -i image.jpg -o skew_corrected_image.jpg 
Cuestiones relacionadas