*デモ用ムービーを作る

gratingのapperance、reversal、写真のappearanceなんかのデモムービーを作成します。

もちろん写真とかは適当な場所に置いておく必要があります。

ムービーファイルはaviででかいです。500mbとかもっと大きくなるかも知れません。圧縮の方法とか知らないもので。

いろいろマジックナンバーを含んでます。すいません。

以下のスクリプトを「なんとか.m」のテキストで保存してmatlabで実行させましょう

%%デモ用ムービーを作るスクリプト

%%RG apperance%%%%%%%%%%%%%

imgRGgrating=double(ones(360,480));%imgのサイズ

imgRGgrating(:,:,2)=imgRGgrating*0.9;

imgRGgrating(:,:,3)=double(zeros(360,480));

imgRGblank=imgRGgrating;

for ii=1:360

for jj=1:480

dist=((ii-180)^2+(jj-240)^2)^0.5;

imgRGgrating(ii,jj,1)=(1+sin(2*pi*jj/12))/2*0.7+0.3;

imgRGgrating(ii,jj,2)=(1-sin(2*pi*jj/12))/2*0.7+0.3;

if dist>=150

imgRGgrating(ii,jj,1)=1;

imgRGgrating(ii,jj,2)=0.9;

end

end

end

%%imgの確認

subplot(1,2,1);imshow(imgRGgrating);

subplot(1,2,2);imshow(imgRGblank);

%%フレームの作成

%%fps=15?か不明

idxFr=1;

for jj=1:10

for ii=1:36

if ii >=11 && ii <=16

fr(idxFr)=im2frame(imgRGgrating);

else

fr(idxFr)=im2frame(imgRGblank);

end

idxFr=idxFr+1;

end

end

movie2avi(fr,'RgGrating.avi','fps',30,'compression','none','quality',100,'keyframe',2);

%%BW reversalのムービー

%%gratingの作成

imgBWgrating=double(ones(360,480))*0.5;

imgBWgrating(:,:,2)=imgBWgrating;

imgBWgrating(:,:,3)=imgBWgrating(:,:,1);

imgBWblank=imgBWgrating;

imgBRgratingRev=imgBWgrating;

for ii=1:360

for jj=1:480

dist=((ii-180)^2+(jj-240)^2)^0.5;

imgBWgrating(ii,jj,1)=(1+sin(2*pi*jj/24))/2*0.7+0.3;

imgBWgrating(ii,jj,2)=imgBWgrating(ii,jj,1);

imgBWgrating(ii,jj,3)=imgBWgrating(ii,jj,1);

imgBWgratingRev(ii,jj,1)=(1-sin(2*pi*jj/24))/2*0.7+0.3;

imgBWgratingRev(ii,jj,2)=imgBWgratingRev(ii,jj,1);

imgBWgratingRev(ii,jj,3)=imgBWgratingRev(ii,jj,1);

if dist>=150

imgBWgrating(ii,jj,1)=0.5;

imgBWgrating(ii,jj,2)=0.5;

imgBWgrating(ii,jj,3)=0.5;

imgBWgratingRev(ii,jj,1)=0.5;

imgBWgratingRev(ii,jj,2)=0.5;

imgBWgratingRev(ii,jj,3)=0.5;

end

end

end

%%imgの確認

figure;

subplot(2,2,1);imshow(imgBWgrating);

subplot(2,2,2);imshow(imgBWblank);

subplot(2,2,3);imshow(imgBWgratingRev);

%%フレームの生成

clear fr;

idxFr=1;

for jj=1:10

for ii=1:48

if (ii>=9 && ii<=40)

if mod(ii,2)==0

fr(idxFr)=im2frame(imgBWgrating);

else

fr(idxFr)=im2frame(imgBWgratingRev);

end

else

fr(idxFr)=im2frame(imgBWblank);

end

idxFr=idxFr+1;

end

end

movie2avi(fr,'BwGrating.avi','fps',16,'compression','none','quality',100,'keyframe',2);

%%face appearance

clear;

sDir='D:\Users\ogata_2\Desktop\刺激動画\face';

strFnames=dir([sDir,'\*.bmp']);

%%フレームの作成

%%fps=15?か不明

idxFr=1;

for kk=1:10

vecImgOrder=randperm(length(strFnames));

for jj=1:length(strFnames)

for ii=1:13

matFace=double(imread([sDir,'\',strFnames(vecImgOrder(jj)).name]))/255;

matFaceStretch=imadjust(matFace,[0.04 0.4], [0 1]);

for kk=1:3

matFaceStretch3(:,:,kk)=matFaceStretch;

end

nBackgroundLevel=matFaceStretch(1,1);

matFaceBlank=ones(size(matFaceStretch))*nBackgroundLevel;

for kk=1:3

matFaceBlank3(:,:,kk)=matFaceBlank;

end

%subplot(1,2,1);imshow(matFaceStretch);

%subplot(1,2,2);imshow(matFaceBlank);

if ii >=4 && ii <=6

fr(idxFr)=im2frame(matFaceStretch3);

else

fr(idxFr)=im2frame(matFaceBlank3);

end

idxFr=idxFr+1;

end

end

end

movie2avi(fr,'FaceAppearance.avi','fps',10,'compression','none','quality',100,'keyframe',2);

%%Word appearance

clear;

sDir='D:\Users\ogata_2\Desktop\刺激動画\word';

strFnames=dir([sDir,'\*.bmp']);

%繰り返すならここから下

idxFr=1;

for kk=i:4

vecImgOrder=randperm(length(strFnames));

%%フレームの作成

for jj=1:length(strFnames)

for ii=1:20

matWordOrig=double(imread([sDir,'\',strFnames(vecImgOrder(jj)).name]))/255;

matWord=matWordOrig;%サイズを変えるならここで

matWordStretch=imadjust(matWord,[0.04 0.4], [0 1]);

for kk=1:3

matWordStretch3(:,:,kk)=matWordStretch;

end

nBackgroundLevel=matWordStretch(1,1);

matWordBlank=ones(size(matWordStretch))*nBackgroundLevel;

for kk=1:3

matWordBlank3(:,:,kk)=matWordBlank;

end

%subplot(1,2,1);imshow(matFaceStretch);

%subplot(1,2,2);imshow(matFaceBlank);

if ii >=4 && ii <=11

fr(idxFr)=im2frame(matWordStretch3);

else

fr(idxFr)=im2frame(matWordBlank3);

end

idxFr=idxFr+1;

end

end

end

movie2avi(fr,'WordAppearance.avi','fps',10,'compression','none','quality',100,'keyframe',2);