Programación Específica > Matlab
Tiempo De Espera Para Tomar Una Foto
(1/1)
Quicksilver:
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 --- canalVideo=videoinput('winvideo'); preview(canalVideo); start(canalVideo); imgAdq=getsnapshot(canalVideo); end
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 --- obj = videoinput('matrox', 1); Initiate an acquisition and access the logged data.start(obj);data = getdata(obj,4);imaqmontage(data); Display each image frame acquired.
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:
fa61an:
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:
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:
Quicksilver:
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 --- clear allclose all clc canalVideo=videoinput('winvideo'); src = getselectedsource(canalVideo); % List the video source object's properties and their current values.% Los valores que voy a poner a continución son modificaciones a las propiedades de la cámara get(src)set(src, 'Saturation', 50)set(src, 'Exposure', 20) preview(canalVideo); start(canalVideo); pause(10); % Esta es la función que tanto he buscado, aca está % imgAdq=getsnapshot(canalVideo);% % K=imgAdq;% K1=rgb2gray(K); %% for c=1:10;K=getsnapshot(canalVideo);pause(0.2); % Esta es la función que tanto he buscado, aca está.imwrite (K,strcat(num2str(c),'.jpg'));end
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!
ganitomaster:
:good: genial yo estaba en busca de la misma funcion muchas gracias ..............
Navegación
Ir a la versión completa