Bergen, J. R., & Julesz, B. (1983). Parallel versus serial processing in rapid pattern discrimination. Nature, 303, 696-698
のFig.1 のような複数の T の中に L が含まれる刺激の描画について説明します。
またTとLは任意の角度に回転しています。
まず次のTの画像とLの画像の2つをダウンロードして、T.jpg と L.jpg という名前で、プログラムと同じ場所に保存してください。
サンプルプログラムは次の通りです。
function TandL% 複数の"T"の中に、"L"が1つ含まれる。% TとLは任意の角度に回転した状態で呈示。% 何かのキーを押したら終了try AssertOpenGL; ListenChar(2); %Matlabに対するキー入力を無効 %myKeyCheck; screenNumber = max(Screen('Screens')); [win, rect] = Screen('OpenWindow', screenNumber, [255 255 0], [10 50 750 550]); %画面の中心座標 [centerX centerY] = RectCenter(rect); %実験プログラムを保存しているフォルダ内に T.jpg と L.jpg を準備しておくこと。 Tfile = 'T.jpg'; Lfile = 'L.jpg'; %画像の読み込み Tdata = imread(Tfile, 'jpg'); Ldata = imread(Lfile, 'jpg'); %画像サイズの幅が「列数」に相当し、 %画像サイズの高さが「行数」の相当する [Ty, Tx, Td] = size(Tdata); [Ly, Lx, Ld] = size(Ldata); Timagetex = Screen('MakeTexture', win, Tdata); Limagetex = Screen('MakeTexture', win, Ldata); %凝視点の線分座標 FixationXY=[-20, 20, 0, 0; 0, 0, -20, 20]; %水平方向のグリッドの数 HorizGridNum=5; %垂直方向のグリッドの数 VertGridNum=5; a=[1:HorizGridNum]; b=[1:VertGridNum]; [x,y]=meshgrid(a,b); GridWidth = 70; GridHeight = 70; %赤い凝視点の描画 Screen('DrawLines', win, FixationXY, 2, [255 0 0], [centerX, centerY]); for cnt = 1:HorizGridNum*VertGridNum if cnt ~= 13 %凝視点部分(グリッドの13番目)は描画しない %描画する画像の左上のX座標 tmpX = (x(cnt)-1) * GridWidth + centerX - (GridWidth * HorizGridNum)/2 + (GridWidth - Tx)/2; %描画する画像の左上のY座標 tmpY = (y(cnt)-1) * GridHeight + centerY - (GridHeight * VertGridNum)/2 + (GridHeight - Ty)/2; if cnt == 7 %グリッドの7番目に"L"を呈示する Screen('DrawTexture', win, Limagetex, [], [tmpX tmpY tmpX+Lx tmpY+Ly], rand(1)*360); else Screen('DrawTexture', win, Timagetex, [], [tmpX tmpY tmpX+Tx tmpY+Ty], rand(1)*360); end; end; end; Screen('Flip', win); KbWait; sca; ListenChar(0);catch sca; ListenChar(0); psychrethrow(psychlasterror);end上のサンプルプログラムを理解するにはmeshgridの知識が必要です。
分かりやすいように背景を黄色にして、凝視点を赤にしています。
ここでは5×5の格子状の配置を想定しています。
ポイントとしては、例えば左から2番目で上から2番目のグリッドを通し番号7で表しているところです。
サンプルプログラムでは、7番のところに"L"を呈示して、13番目のところに凝視点を呈示しています。
またグリッドの大きさ(GridWidth, GridHeight)は、画像の大きさ(Tx, Ty)より大きくしておかないと、画像を回転させたときに重複部分が出てきてしまいます。
上の例ではすべてのグリッドに画像を呈示していますが、すべてのグリッドに呈示しないことによって、TやLがランダムに配置されているように見せることもできます。
(やや規則的なランダムになりますが)
詳しくはパターン刺激2(ランダム)をご覧ください。