_GUI_
20/11/06, 00:28:55
Pues eso, para eliminar a la gente, los coches o todo lo que se mueva. Esto es muy útil para arquitectura, fotos de lugares turísticos, y de calles o parajes concurridos en general. A diferencia de lo que hace un filtro ND forzando un largo tiempo de exposición (donde se promedia todo lo que discurre por delante de la cámara fundiendo así a los transeuntes con el fondo y dando la impresión de que estos "desaparecen"), este programa clasifica los pixels de las distintas tomas en fondo o persona, de modo que lo que no queda clasificado como fondo es descartado y desaparece de la imagen final.
Por cierto lo he colgado porque FranciscoT lo ha visto en otro foro (http://www.ojodigital.com/foro/showthread.php?t=99952) y me ha comentado que estaría bien compartirlo aquí.
Éste es el GUI del programa (una primerísima versión, ya se me han ocurrido varias mejoras del algoritmo sobre todo):
http://img396.imageshack.us/img396/4003/guifp9.jpg
Requisitos:
- Varias fotos, cuantas más mejor, de aquello en que queréis eliminar a la gente (para probar el programa de manera virtual podéis coger una foto, copiarla n veces, y guarrear de un modo distinto cada copia, a ver qué pasa).
- Hechas con trípode y en modo manual para tener exactamente la misma velocidad y apertura en todas ellas y por tanto exposición. También bloquear el enfoque (una vez enfocada la zona de interés ponerlo en manual y no tocarlo).
- Hay que dejar pasar tiempo entre toma y toma para dar tiempo a los "pesados" a irse (ver a la cuchipanda que espera el bus), pero tampoco demasiado para que no cambie la iluminación (a mí me ha pasado, desde que he empezado a tomar hasta el final ha bajado 1/3 EV porque ya estaba atardeciendo), por ejemplo si está amaneciendo, atardeciendo o pasan nubes.
- En general cuantas más fotos mejor, pero lo realmente importante es que los obstáculos cambien de posición de unas a otras. Es decir: es más fácil eliminar a mucha gente pero que aparece por sitios diversos aunque tengamos pocas fotos, que eliminar obstáculos que aparecen siempre por la misma zona de la foto (los coches como veremos luego son un gran enemigo).
- Todas las fotos de igual tamaño. Yo además las he tirado en JPG para ahorrarme el revelado, en el que no sé si sabría mantener las condiciones de iluminación uniformes.
Manual:
- Metemos en una carpeta todas las fotos, y sólo las fotos. Soporta JPEG, GIF, TIFF y BMP, pudiendo estar mezclados (cosa un poco rara pero bueno).
- Con '...' seleccionamos una de ellas, así el programa sabe adonde ir a buscarlas.
- Establecemos el umbral (es la diferencia máxima de color en %, para que el programa considere que un color es "similar" a otro y por tanto esos dos colores formen un mismo cluster o agrupación de colores similares). Probando un poco veo claro que hay un % óptimo para cada caso. Para esta foto 5% ha funcionado bien.
En general con umbrales pequeños (<3%) las imperfecciones (lugares donde el programa se ha hecho un lío y no ha sabido por donde tirar) aparecerán en forma de muchos pixels espúreos pero de fuerte color (en esos pixels han dominado totalmente colores indeseados respecto a los del fondo).
Mientras que con umbrales grandes (>5%) aparecerán bloques más grandes de color erróneo, pero éste estará más difuminado (al abrir el umbral habrán entradoa promediar en el cluster colores indeseados por lo que la sensación será de que hay fantasmas).
Se pueden meter decimales con la coma (imagino que en un PC americano habrá que poner el punto).
- Pulsamos 'Remove' y a esperar. Para procesar 17 fotos de tamaño 1728x1152 mi ordenador (P4 con 2GB) ha tardado menos de 3min. El tiempo aumenta aprox. con el cuadrado del número de imágenes, o sea que si con 5 tarda 25s, con 10 tardará 100s, y con 21 tardará 441s, pero he comprobado que también influye en él el umbral: a mayor umbral más rápido.
- El programa guarda en el mismo directorio de las fotos un fichero llamado removed_5%.tif con el resultado (ojo a quitarlo de ahí ante de repetir el procesado con otro valor de umbral, o entrará a formar parte del mismo).
En otro post os digo como creo que debe ajustarse el umbral, pero como es un poco rollo vamos con los resultados de esta tarde: he hecho 23 fotos, de las que he desechado 6 porque tenían poca gente y coches (en un caso real, haríamos justo lo contrario, o dejar todas o eliminar aquellas más llenas de obstáculos para que no estropeen el procesado). Las 17 que han quedado eran todas muy similares en cuanto a obstáculos os pongo 6 de ejemplo:
http://img280.imageshack.us/img280/1469/6piezasff6.jpg
Y el resultado ha sido:
http://img280.imageshack.us/img280/2573/resultadohk9.jpg
A tamaño real se ve mejor:
http://img488.imageshack.us/img488/3613/originalqp8.jpg (http://img488.imageshack.us/img488/3613/originalqp8.jpg)
Puede verse que no se ha podido recuperar la zona de la parada de autobús (por razones obvias, la gente que esperaba el bus ha estado un buen rato y el programa los ha "confundido" con el verdadero fondo. jejeje les ha conseguido arrancar la cabeza, debe ser que la movían mucho), y luego hay algunos pixels espúreos en la zona de la calzada bajo la farmacia sobre todo. He comprobado que las ruedas y bajos (sombra) de los coches son un enemigo importante porque como tienen todos el mismo color (negro) y pasan siempre por el mismo sitio (http://www.ojodigital.com/foro/images/smilies/biggrin.gif) es fácil que el programa las tome como el fondo. Por eso quería irme al Templo de Debod pero ya no me ha dado tiempo. Estoy convencido de que con solo personas y buena luz (típica foto turis), tiene que funcionar mejor aún.
Pues nada, espero que os sea útil. Os lo podéis bajar de aqui (zona desgarga de software, buscar Amenabar):
http://perso.wanadoo.es/gluijk (http://perso.wanadoo.es/gluijk)
Ya me contáis.
PD: el que lo quiera probar sin tener fotos hechas que coja una cualquiera, haga unas cuantas réplicas y cada una la pintarrajee de modo diferente. Será divertido ver que hace el programa.
"SU TRABAJO. GRACIAS"
Canon EOS 350D | EOS 300 | 10-22 | 17-40 f4L | 50 f1.4 | 70-200 f4L | 28-90
http://img74.imageshack.us/img74/152/sign2yw1.jpg (http://pbase.com/gluijk) http://img78.imageshack.us/img78/9012/blinkyfo9.gif (http://gluijk.portfolio.artlimited.net/)
Por cierto lo he colgado porque FranciscoT lo ha visto en otro foro (http://www.ojodigital.com/foro/showthread.php?t=99952) y me ha comentado que estaría bien compartirlo aquí.
Éste es el GUI del programa (una primerísima versión, ya se me han ocurrido varias mejoras del algoritmo sobre todo):
http://img396.imageshack.us/img396/4003/guifp9.jpg
Requisitos:
- Varias fotos, cuantas más mejor, de aquello en que queréis eliminar a la gente (para probar el programa de manera virtual podéis coger una foto, copiarla n veces, y guarrear de un modo distinto cada copia, a ver qué pasa).
- Hechas con trípode y en modo manual para tener exactamente la misma velocidad y apertura en todas ellas y por tanto exposición. También bloquear el enfoque (una vez enfocada la zona de interés ponerlo en manual y no tocarlo).
- Hay que dejar pasar tiempo entre toma y toma para dar tiempo a los "pesados" a irse (ver a la cuchipanda que espera el bus), pero tampoco demasiado para que no cambie la iluminación (a mí me ha pasado, desde que he empezado a tomar hasta el final ha bajado 1/3 EV porque ya estaba atardeciendo), por ejemplo si está amaneciendo, atardeciendo o pasan nubes.
- En general cuantas más fotos mejor, pero lo realmente importante es que los obstáculos cambien de posición de unas a otras. Es decir: es más fácil eliminar a mucha gente pero que aparece por sitios diversos aunque tengamos pocas fotos, que eliminar obstáculos que aparecen siempre por la misma zona de la foto (los coches como veremos luego son un gran enemigo).
- Todas las fotos de igual tamaño. Yo además las he tirado en JPG para ahorrarme el revelado, en el que no sé si sabría mantener las condiciones de iluminación uniformes.
Manual:
- Metemos en una carpeta todas las fotos, y sólo las fotos. Soporta JPEG, GIF, TIFF y BMP, pudiendo estar mezclados (cosa un poco rara pero bueno).
- Con '...' seleccionamos una de ellas, así el programa sabe adonde ir a buscarlas.
- Establecemos el umbral (es la diferencia máxima de color en %, para que el programa considere que un color es "similar" a otro y por tanto esos dos colores formen un mismo cluster o agrupación de colores similares). Probando un poco veo claro que hay un % óptimo para cada caso. Para esta foto 5% ha funcionado bien.
En general con umbrales pequeños (<3%) las imperfecciones (lugares donde el programa se ha hecho un lío y no ha sabido por donde tirar) aparecerán en forma de muchos pixels espúreos pero de fuerte color (en esos pixels han dominado totalmente colores indeseados respecto a los del fondo).
Mientras que con umbrales grandes (>5%) aparecerán bloques más grandes de color erróneo, pero éste estará más difuminado (al abrir el umbral habrán entradoa promediar en el cluster colores indeseados por lo que la sensación será de que hay fantasmas).
Se pueden meter decimales con la coma (imagino que en un PC americano habrá que poner el punto).
- Pulsamos 'Remove' y a esperar. Para procesar 17 fotos de tamaño 1728x1152 mi ordenador (P4 con 2GB) ha tardado menos de 3min. El tiempo aumenta aprox. con el cuadrado del número de imágenes, o sea que si con 5 tarda 25s, con 10 tardará 100s, y con 21 tardará 441s, pero he comprobado que también influye en él el umbral: a mayor umbral más rápido.
- El programa guarda en el mismo directorio de las fotos un fichero llamado removed_5%.tif con el resultado (ojo a quitarlo de ahí ante de repetir el procesado con otro valor de umbral, o entrará a formar parte del mismo).
En otro post os digo como creo que debe ajustarse el umbral, pero como es un poco rollo vamos con los resultados de esta tarde: he hecho 23 fotos, de las que he desechado 6 porque tenían poca gente y coches (en un caso real, haríamos justo lo contrario, o dejar todas o eliminar aquellas más llenas de obstáculos para que no estropeen el procesado). Las 17 que han quedado eran todas muy similares en cuanto a obstáculos os pongo 6 de ejemplo:
http://img280.imageshack.us/img280/1469/6piezasff6.jpg
Y el resultado ha sido:
http://img280.imageshack.us/img280/2573/resultadohk9.jpg
A tamaño real se ve mejor:
http://img488.imageshack.us/img488/3613/originalqp8.jpg (http://img488.imageshack.us/img488/3613/originalqp8.jpg)
Puede verse que no se ha podido recuperar la zona de la parada de autobús (por razones obvias, la gente que esperaba el bus ha estado un buen rato y el programa los ha "confundido" con el verdadero fondo. jejeje les ha conseguido arrancar la cabeza, debe ser que la movían mucho), y luego hay algunos pixels espúreos en la zona de la calzada bajo la farmacia sobre todo. He comprobado que las ruedas y bajos (sombra) de los coches son un enemigo importante porque como tienen todos el mismo color (negro) y pasan siempre por el mismo sitio (http://www.ojodigital.com/foro/images/smilies/biggrin.gif) es fácil que el programa las tome como el fondo. Por eso quería irme al Templo de Debod pero ya no me ha dado tiempo. Estoy convencido de que con solo personas y buena luz (típica foto turis), tiene que funcionar mejor aún.
Pues nada, espero que os sea útil. Os lo podéis bajar de aqui (zona desgarga de software, buscar Amenabar):
http://perso.wanadoo.es/gluijk (http://perso.wanadoo.es/gluijk)
Ya me contáis.
PD: el que lo quiera probar sin tener fotos hechas que coja una cualquiera, haga unas cuantas réplicas y cada una la pintarrajee de modo diferente. Será divertido ver que hace el programa.
"SU TRABAJO. GRACIAS"
Canon EOS 350D | EOS 300 | 10-22 | 17-40 f4L | 50 f1.4 | 70-200 f4L | 28-90
http://img74.imageshack.us/img74/152/sign2yw1.jpg (http://pbase.com/gluijk) http://img78.imageshack.us/img78/9012/blinkyfo9.gif (http://gluijk.portfolio.artlimited.net/)