• Viernes 19 de Abril de 2024, 18:13

Autor Tema:  Tiempo De Espera Para Tomar Una Foto  (Leído 5255 veces)

Quicksilver

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
Tiempo De Espera Para Tomar Una Foto
« en: Domingo 13 de Abril de 2008, 18:59 »
0
Cofrades programadores, como siempre, trato de venir con dudas interesantes, para que pensemos un poco, en el día de hoy, se me ha ocurrido tomar fotos en secuencia, y guardarlas, pero la verdad no se como hacerlo, pondré parte del código, y trataré de explicar de la mejor forma lo que quiero lograr. :smartass:


Código: Text
  1.  
  2.  
  3. canalVideo=videoinput('winvideo');
  4.  preview(canalVideo);
  5.  start(canalVideo);
  6.  imgAdq=getsnapshot(canalVideo);
  7.  
  8. end
  9.  

Muy bien, como casi todos sabemos, este es el código con el cual puedo adquirir fotos a través de una cámara web conectada por USB, pero... lo que ahora necesito, es tomar una secuencia de fotos, la cantidad que yo quiera, como hacer un video por cuadros, por ejemplo tomar fotos cada 3 segundos, o cada 2 segundos, he intentado busca las funciones en MatLab y no he encontrado, creo que existen, porque lo otro que he intentado, es hacerlo por una matriz.

La función getdata, es lo mas cerca que he encontrado, pero sin darme el resultado final que deseo, :angry:  pondré un breve código tomado de la ayuda de MatLab


Código: Text
  1.  
  2. obj = videoinput('matrox', 1); Initiate an acquisition and access the logged data.
  3. start(obj);
  4. data = getdata(obj,4);
  5. imaqmontage(data); Display each image frame acquired.
  6.  

Con el código que acabo de poner, puedo tomar 4 recuadros seguidos, pero no puedo guardarlos en archivos diferentes, ni mostrarlos en plots diferentes.

Espero pues, que alguien me ayude a tomar fotos por recuadros, y que yo pueda definir el retardo o el tiempo entre foto y foto, espero que me ayuden solo con esta función, muchisimas gracias. :kicking:
Everything that has a beginning has an end

fa61an

  • Miembro MUY activo
  • ***
  • Mensajes: 100
    • Ver Perfil
Re: Tiempo De Espera Para Tomar Una Foto
« Respuesta #1 en: Sábado 19 de Abril de 2008, 19:23 »
0
Los retardos se pueden hacer en matlab, como se hacen no recuerdo, solo recuerdo que era con una sola instrucción.


Y seria como dices que a cada retardo hacer  imgAdq=getsnapshot(canalVideo);

también recuerdo que los retardos dependen del procesador, aplicaciones abiertas en el momento de ejecutar y el uso de la CPU por parte del S.O.

La duda esta interesante. buscare a ver que se puede encontrar

Quicksilver

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
Re: Tiempo De Espera Para Tomar Una Foto
« Respuesta #2 en: Sábado 19 de Abril de 2008, 23:44 »
0
fa61an, tu siempre al auxilio de nosotros los desvalidos, os agradaceré bastante si me ayudas en este asunto que viene talandrando ya hace un buen rato en mi cabeza, muchisimas gracias fa61an, yo también seguiré buscando. :comp:
Everything that has a beginning has an end

Quicksilver

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
Re: Tiempo De Espera Para Tomar Una Foto
« Respuesta #3 en: Miércoles 14 de Mayo de 2008, 05:59 »
0
fa61an :hola: , os lo he conseguido, mira, voy a colocar el código aquí, pues tu bien sabes, que yo cuando resuelvo algo, trato de compartirlo, ahora si podemos hacer videos a través de imágenes secuenciales, jejeje, es bastante sencillo.


Código: Text
  1.  
  2.  
  3. clear all
  4. close all
  5. clc
  6.  
  7.  
  8. canalVideo=videoinput('winvideo');
  9.  
  10. src = getselectedsource(canalVideo);
  11.  
  12. % List the video source object's properties and their current values.
  13. % Los valores que voy a poner a continución son modificaciones a las propiedades de la cámara
  14.  
  15. get(src)
  16. set(src, 'Saturation', 50)
  17. set(src, 'Exposure', 20)
  18.  
  19.  preview(canalVideo);
  20.  start(canalVideo);
  21.  
  22.  pause(10);        % Esta es la función que tanto he buscado, aca está
  23.  
  24.  
  25. %  imgAdq=getsnapshot(canalVideo);
  26. %
  27. %  K=imgAdq;
  28. %  K1=rgb2gray(K);
  29.  
  30. %%
  31.  
  32. for c=1:10;
  33. K=getsnapshot(canalVideo);
  34. pause(0.2);            % Esta es la función que tanto he buscado, aca está.
  35. imwrite (K,strcat(num2str(c),'.jpg'));
  36. end  
  37.  





Este código me permite tomar fotos cada 0.2 segundos (función "pause(0.2)"), excelente, próximo a la culminación de uno de mis proyectos, jejeje, espero que te sirva de ayuda a vos, y a todos los del foro. :kicking:

¡LO HE LOGRADO!
Everything that has a beginning has an end

ganitomaster

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Tiempo De Espera Para Tomar Una Foto
« Respuesta #4 en: Jueves 15 de Enero de 2009, 21:36 »
0
:good:  genial yo estaba en busca de la misma funcion muchas gracias ..............