Hacer una película a pantalla completa en MATLAB

Así que estoy tratando de hacer una película en MATLAB que contenga algunos círculos grises en ubicaciones específicas, con uno de los círculos pasando de negro a blanco en el transcurso de la misma. Sin embargo, no puedo hacer que solo grabe las imágenes en toda la pantalla con la resolución correcta en lugar de mostrarlas en una ventana de figura. Esto es lo que tengo hasta ahora:

h=ones(1080,1920);
trap1=.5*circ(1920,1080,55,532,534,2);
trap2=.5*circ(1920,1080,55,528,798,2);
pcf=circ(1920,1080,18,1520,504,2); %Makes the circles


for ii=1:256
    pcfl=pcf*(ii-1)/255; %Steps through greylevels
    m=h.*(trap1+trap2+pcfl); %Make everything but the circles black    
    hfig=imshow(m); %Display image
    colormap('gray') %This is probably unnecessary
    mov(ii)=getframe(gcf);
end

myVideo = VideoWriter('trapmov.avi');
open(myVideo);
writeVideo(myVideo,mov)
close(myVideo)

He encontrado este y este que parecen estar cerca de lo que quiero (especialmente el segundo), pero no sé lo suficiente sobre Java para poder hacer una película desde el primero, y el segundo no funciona porque reclama la resolución de la imagen. no es 1920x1080; creo que esto se debe a que MATLAB lo escala antes de que la función tenga la oportunidad de "llegar a él", por así decirlo.

Posiblemente podría hacer que funcione simplemente guardando la imagen de cada iteración del ciclo y creando un .gif a partir de ella, pero no estoy seguro de cómo lograría que se muestre a pantalla completa y sería mucho mejor ser Capaz de controlar la reproducción con VLC.

También hay formas de hacer esto con tramas normales:

set(hfig,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);

pero esto solo funciona en objetos creados con comandos de trazado, no en image/imshow.

EDITAR: OK, me di por vencido y acabo de hacer un .gif y funciona en el modo de pantalla completa de Chrome, pero una solución a esto sería buena ya que parece algo bastante útil saber cómo hacerlo.

preguntado el 24 de agosto de 12 a las 03:08

En realidad, ahora que lo he pensado más, es más fácil hacer .avis a partir de los marcos con virtualDub:

1 Respuestas

Haría esto usando caja de herramientas psicologicas. Es un punto de partida mucho más apropiado que las clases de figuras de Matlab. El paquete está diseñado para Matlab y viene con muchas demostraciones que pueden modificarse fácilmente para generar su estímulo.

Si desea generar una película, puede tomar los fotogramas de pantalla completa de psychtoolbox con

imageArray = Screen('GetImage', wPtr, [0 0 1024 768]);

donde wPtr es el puntero a una ventana que ha creado y el vector son las dimensiones de la pantalla. Puedes encontrar más detalles sobre esto aquí

En caso de que estés haciendo pruebas de comportamiento o psicofísica... Realmente me quedaría con psychtoolbox e ignoraría VLC.

Respondido 24 ago 12, 13:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.