2

そこで、MATLABで、特定の場所に灰色の円がいくつか含まれているムービーを作成しようとしています。円の1つは、その過程で黒から白に変化します。しかし、フィギュアウィンドウに表示するのではなく、画面全体に適切な解像度で画像を記録するだけでは不十分です。これが私がこれまでに得たものです:

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)

私はこれこれが私が望むもの(特に2番目のもの)に近いように見えることを見つけましたが、最初のものから映画を作ることができるようにJavaについて十分に知りません、そして2番目のものはそうではありません画像の解像度が1920x1080ではないと主張しているため、機能します。これは、関数が「到達」する前に、MATLABが画像をスケーリングするためだと思います。

ループの各反復からの画像を保存し、それから.gifを作成するだけで機能させることができるかもしれませんが、それをフルスクリーンで表示する方法がわかりません。 VLCで再生を制御できます。

通常のプロットでこれを行う方法もあります。

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

ただし、これは、image / imshowではなく、plotコマンドで作成されたオブジェクトでのみ機能します。

編集:OK私はあきらめて.gifを作成しましたが、Chromeのフルスクリーンモードで動作しますが、方法を知ることはかなり便利なことのように思われるので、これに対する解決策はまだ素晴らしいでしょう。

4

1 に答える 1

0

私はpsychtoolboxを使用してこれを行います。これは、MatlabのFigureクラスよりもはるかに適切な出発点です。パッケージはMatlab用に構築されており、刺激を生成するために簡単に変更できる多くのデモが付属しています。

ムービーを生成したい場合は、psychtoolboxからフルスクリーンフレームを取得できます。

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

ここで、wPtrは作成したウィンドウへのポインターであり、ベクトルは画面の寸法です。詳細については、こちらをご覧ください

あなたが行動テストや精神物理学をしているという偶然の機会に...私は本当にpsychtoolboxに固執し、VLCを無視します。

于 2012-08-24T12:32:02.683 に答える