› Foros › PC › Software libre
Esog Enaug escribió:Si y no:
Añadir la funcionalidad del croma es muy sencillo con imagemagik, y hay mil tutoriales en internet y muchas formas de hacerlo, según lo que quieras hacer (para que un fondo si tambien puedes añadir un telón y un marco por encima). Se puede hacer con una sola linea de comando en bash.
Pero tu lo que quieres es tener cierto control sobre el proceso. Si quieres una tactil, lo mas facil es diseñar una web que seleccione los fondos y realice todo lo necesario. En este caso te podría sobrar hasta el boton disparador (que estaría en la tactil)
Pero creo que sería mas facil si usas una pantalla normal y tres o dos botones mas: "fondo de la derecha", "fondo de la izquierda" y "seleccionar fondo" (que puede ser el mismo disparador) y en la pantalla ir mostrando el resultado de aplicar el comando de fusion del fondo + foto + marco. Si quieres que se vea en directo puedes usar mmpeg para ir mostrando la escena.
Esto apenas te requerirá escribir código, pues puedes reciclar todo lo que has visto, casi todo será un corta y pega desde internet y no tienes que usar html, css ni php.
Puede valer solo con un script en bash. O algo muy sencillo en pytho. Y si usas una botonera usb (un mando, un teclado numerico .....) tu proyecto se puede usar con cualquier pc que use linux.
Si dices que pagina es la del proyecto te puedo decir como lo haría yo.
casidi22 escribió:Muchas gracias Esog Enaug.
http://orangepiweb.es/fotomaton.php esta es la pagina donde he visto el proyecto aunque mis conocimientos de programacion son muy muy limitados(experto en copiar y pegar codigo y como mucho modificar alguna linea), al igual que se usa un pulsador del gpio para disparar, ¿se podria utilizar otros 3 pulsadores como fondos prefijados?, por seguir con el mismo procedimiento.
if gpio.input(sensor) == 0:
print("Espera 3 segundos")
time.sleep(3)
sufijo = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
nombre = "orangepi-" + sufijo + ".jpg"
subprocess.call(["fswebcam", "-r", "1280x720", nombre])
time.sleep(0.5)
if gpio.input([b]fondo1[/b]) == 0:
print("Espera 3 segundos")
time.sleep(3)
sufijo = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
nombre = "orangepi-" + sufijo + ".jpg"
subprocess.call([[b]composite imagen.jpg fondo.jpeg output.jpg[/b]])
time.sleep(0.5)
accion = input()
gpio.input([b]fondo1[/b]) == 0
Esog Enaug escribió:He visto que esta escrito en python, por lo que es muy facil el corta y pega.casidi22 escribió:Muchas gracias Esog Enaug.
http://orangepiweb.es/fotomaton.php esta es la pagina donde he visto el proyecto aunque mis conocimientos de programacion son muy muy limitados(experto en copiar y pegar codigo y como mucho modificar alguna linea), al igual que se usa un pulsador del gpio para disparar, ¿se podria utilizar otros 3 pulsadores como fondos prefijados?, por seguir con el mismo procedimiento.
Si lo haces como dices, con solo unos pocos fondos y un boton para cada fondo tienes que multiplicar la parte del bonton, cambiando los pines y el comando a realizar.if gpio.input(sensor) == 0:
print("Espera 3 segundos")
time.sleep(3)
sufijo = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
nombre = "orangepi-" + sufijo + ".jpg"
subprocess.call(["fswebcam", "-r", "1280x720", nombre])
time.sleep(0.5)
por algo así por boton:if gpio.input([b]fondo1[/b]) == 0:
print("Espera 3 segundos")
time.sleep(3)
sufijo = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
nombre = "orangepi-" + sufijo + ".jpg"
subprocess.call([[b]composite imagen.jpg fondo.jpeg output.jpg[/b]])
time.sleep(0.5)
Ten en cuenta que tendras que definir las varibles de los pines de los nuevos botones y que el código que te he puesto no funciona, no está bien configurada la llamada a subprocess.call y el comando no es exactamente el que deberías usar, pero los tiros van por esos lares.
Tambien puedes crear la mascara que pondras sobre el fondo eliminando el color del fondo de la foto con python directamente. Hay tutoriales por internet que hacen cosas muy parecidas o identicas (hay librerias en python para manipular imagenes)
Mirate esto:
http://robologs.net/2016/05/18/detectar-multiples-colores-con-opencv-y-python/
y esto:
http://nightdeveloper.net/cambiar-usando-python/
El truco está en cambiar el color por un pixel transparente y luego unir las imagenes desde python. Es mucho mas elegante y educativo que hacer una llamada a una funcion del sistema (lo que te crea una dependencia)
Si usas USB tendras que leer la entrada con
en vez deaccion = input()
gpio.input([b]fondo1[/b]) == 0
y luego itinerar con if ... elif ... else sobre las posibles teclas
Si lo pones en github (o similar) te puedo ayudar y lo podemos sacar adelante. Pero tendría que ser con USB, por que tengo RPi´s y pc, pero no OPi. Estoy seguro de que es muy facil (aunque tengamos que aprender un poco por el camino)
Esog Enaug escribió:El codigo de la OPi no funcionaría directamente en RPi por que usan diferente librería y numeración para los GPIO. Por eso te digo de usar el USB.
Sobre el disparador a distancia, yo usaría IR, pero solo si lo necesitara, es decir, si no puedo meter un cable. Ese que pones es matar moscas a cañonazos.
La RPi1 te va lenta por el escritorio. Prueba a darle mas o menos ram a la grafica. O usa rasbian sin escritorio y te conectas por ssh. Aunque pusieras una pantalla para mostrar las fotos no te hace falta el escritorio completo.
casidi22 escribió:¿Podría usar esto: https://github.com/attilad/pibooth editando el cambio de fondo aleatorio por uno que sea con 2 botones uno de avanzar y otro de retroceder?