Matlab - ¿grabar video en matlab?

 
Vista:
sin imagen de perfil

¿grabar video en matlab?

Publicado por william (20 intervenciones) el 24/12/2016 01:26:21
buenas noches, estaba jugando con la cámara de mi celular y matlab para transmitir en vivo hacia un gui, y hasta ahora va bien, pero me surgió la inquietud de poder realizar una captura de video de lo que estoy viendo, asi que averigue un poco y he encontrado algunos comandos, pero no me ha funcionado bien, solo graba un frame creo, lo que es menos de un segundo
los comandos que encontre son estos

1
2
3
v = VideoWriter('newfile.avi');
open(v)
writeVideo(v,captura3)

intente aplicarlo de la siguiente forma en mi gui pero no tuve exito

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
%% acá hago la adquisición de vídeo mediante un boton de start 
 
function pushbutton1_Callback(hObject, eventdata, handles)
url = ' *introducir ip* /shot.jpg';
framesAcquired = 0;
 
while (framesAcquired <= 5000000000000)
data = imread(url);
handles.captura=data;
framesAcquired = framesAcquired + 1;
drawnow;
imshow(data);
guidata(hObject, handles);
end
 
 
%% aca trato de capturar el video pero sale error
 
function pushbutton3_Callback(hObject, eventdata, handles)
captura3=handles.captura;
while (1)
v = VideoWriter('newfile.avi');
open(v)
writeVideo(v,captura3)
end

agradezco de antemano su ayuda y feliz navidad :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.732
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿grabar video en matlab?

Publicado por Royeth (1818 intervenciones) el 24/12/2016 03:14:25
1
2
3
4
5
6
7
8
[na,ca]=uiputfile({'*.avi'});
w=VideoWriter(fullfile(ca,na));
w.FrameRate=25;
open(w);
for i=1:100
writeVideo(w,uint8(randi([0,256],300,300)))
end
close(w)

así puedes hacer un vídeo , en donde está uint8(randi([0,256],300,300)) escribes el frame que vas capturando , solo te graba un frame porque vas guardando uno solo y vas borrando el anterior , lo que debes hacer es ir agregándolo con un ciclo como en el ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿grabar video en matlab?

Publicado por william (20 intervenciones) el 24/12/2016 04:11:17
gracias por su respuesta,disculpe una pregunta; el video que se muestra en el gui es una secuencia de imágenes y se van superponiendo para formar un video, hecho con un ciclo while, esa imagen la guardo en una variable llamada capture3 y cuando remplazo en

writeVideo(w,capture3), solo se muestra una imagen en formato de video, osea el video tiene una imagen estática, como podria solucionar ese problema sin romper el ciclo while que hace que se forme el video?es decir coger todo ese proceso que incluye el ciclo while que se origina al pulsar un boton y utilizarlo para hacer la grabacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Royeth
Val: 3.732
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿grabar video en matlab?

Publicado por Royeth (1818 intervenciones) el 25/12/2016 18:58:33
apenas tengas la imagen debes escribirla en el vídeo, es decir, mientras vaya capturando las imágenes debes ir escribiendo de inmediato el vídeo para ahorrarte espacio de memoria , ya que podrías ralentizar el proceso , de lo contrario si es estrictamente necesario capturar primero las imágenes y luego hacer el víde debes hacer la variable de tipo cell de tal manera que vayas guardando todas las imágenes y no solo la última
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿grabar video en matlab?

Publicado por william (20 intervenciones) el 27/12/2016 19:49:24
muchas gracias por sus respuestas y perdon por tantas preguntas, he intetado guardar la matriz de las imagenes en otra matriz de la siguiente forma data2={data(framesAcquired)};
data2=cell(data2) quiza lo este haciendo mal, es que soy prácticamente nuevo en matlab.pero sigo obteniendo el mismo resultado un video con una sola imagen estática

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
%aca adquiero la transmicion de la camara 
 
function pushbutton1_Callback(hObject, eventdata, handles)
url = 'http://192.168.1.2:8080/shot.jpg';
framesAcquired = 0;
 
while (framesAcquired <= 40000000)
data = imread(url);
 
framesAcquired = framesAcquired + 1;
drawnow;
imshow(data);
data2={data(framesAcquired)};
data2=cell(data2)
handles.captura=data2;
guidata(hObject, handles);
end
 
 
%aca trato de grabar el video
 
function pushbutton2_Callback(hObject, eventdata, handles)
 
captura3=handles.captura;
[na,ca]=uiputfile({'*.avi'});
w=VideoWriter(fullfile(ca,na));
w.FrameRate=25;
open(w)
for i=1:200
   frame=getframe;
  writeVideo(w,frame)
end
close(w)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar