2009-07-17 11 views
27

Me gustaría rotar fotos automáticamente, incluso cuando los metadatos EXIF ​​sobre la orientación de la imagen no están disponibles.Algoritmo para detectar la orientación de la foto

¿Existen buenos algoritmos para detectar la orientación de una fotografía? Las imágenes son fotografías de una cámara digital. El algoritmo no tiene que funcionar a la perfección, pero cualquier reducción en la cantidad de interacción humana necesaria para rotar adecuadamente las fotos sería un beneficio.

he encontrado estos dos artículos sobre el tema:

punteros a otras investigaciones y sobre todo son apreciados implementaciones.

+0

No parece ser un algoritmo para la orientación vertical/horizontal automática, pero es el algoritmo más cercano que pude encontrar con algunas implementaciones: deskew. Compruebe ImageMagick dekew, o: http://www.google.com/codesearch/p?ct=rc#f0yt7jaEG7A/raster/deskewer.cpp –

+3

También le puede interesar que las personas estén considerando el truco de rotar imágenes como un nuevo estilo de CAPTCHA. Una imagen circular pequeña se presenta con un objeto obvio (para nosotros), pero no tiene un horizonte claro. Me doy cuenta de que esto no te ayuda, pero subraya la profundidad del problema. http://www.richgossweiler.com/projects/rotcaptcha/rotcaptcha.pdf – Omniwombat

+0

@Luke Francl, quiero hacer algo similar, entonces, ¿qué funcionó finalmente para ti? – Lazer

Respuesta

9

Muchas fotografías de cámaras digitales de consumo son de personas, que podrían usarse para orientación. La detección de rostros es un área de investigación bien estudiada. La detección básica de rostros le daría un rectángulo cuyo lado más largo debería ser la dimensión vertical. Además, si puede detectar los ojos/la boca, debe poder elegir la orientación correcta del rectángulo.

Muchas otras fotografías son instantáneas turísticas, donde el cielo está azul y arriba, y el suelo está verde y abajo.

+3

Muchos algoritmos de detección de rostros no encontrarán rostros al revés, por lo que debe buscar rostros en las cuatro direcciones posibles. – Janusz

+2

Esto es algo que he estado considerando desde que examiné los documentos a los que he vinculado anteriormente, porque al menos uno de ellos usa el reconocimiento facial como parte del algoritmo. Dado que la gran mayoría de mi corpus de fotos incluirá caras, creo que puede funcionar bien (suponiendo que pueda encontrar un programa de reconocimiento facial que pueda reconocer la orientación, según Janusz). –

-2

Si las imágenes no son cuadradas, puede suponer que las imágenes predeterminadas son más anchas que altas. Si ese es el caso para determinar si necesita girar es solo una cuestión de comparar la relación de aspecto y la rotación para reorientar a la predeterminada. Aunque puede terminar con imágenes boca abajo.

+2

Esto solo es válido para las imágenes predeterminadas. A menudo, las personas que toman fotos de rostros o personas girarán la cámara ... – Janusz

+0

Cierto, pero cuando la gente gira la cámara para tomar esas imágenes, a menos que las caras estén hacia los lados o hacia abajo, es posible que pueda usar la relación de aspecto al menos una pista. – bdbaddog

3

Solo pude encontrar http://sourceforge.net/projects/rotator/.

Utilicé un conjunto de prueba de fotos de vacaciones que comprendía 70 imágenes con aproximadamente 18 que requerían rotación.

Después del procesamiento con la configuración predeterminada, hubo 20 rotados o no rotados por error.

No fue un gran resultado.

Cuestiones relacionadas