Up

ポップアウト(pop out)と反応時間

 

認知心理学(cognitive psychology)において研究されている人の情報処理(human information processing)に視覚探索(visual search)と呼ばれているものがある。この視覚探索において、ターゲット(緑色の文字L)がポップアウトしている場合(図1)とそうでない場合(図2)の反応時間を測定するVisual C++/CLRプログラムpopout.exeを用意した。プログラムのファイル名popout.exeをクリックしてダウンロードしたものはダブルクリックなどにより実行することができる。ただし、.NET Framework3.5対応である。プログラムのソースファイルなどをまとめたものは圧縮ファイルpopout.zipとして用意した。ファイル名popout.zipをクリックしてダウンロードしたものをマウスの右ボタンクリックして表示されるメニュから「解凍」あるいは「展開」を選んで解凍することができる。解凍したプログラムはVisual C++2008などから開くことができる。

図1

 

図2

 

プログラムを実行すると図3のフォームが表示される。文字Pのキーを押すと図1あるいは図2のようなパターが表示されるので、緑色の文字LがあればJキーを、ないときはFキーを押す。

図3

 

正しいキーが押されたときは図4のように「OK」が表示される。間違ったキーを押したときは「Error」が表示される。反応のときにJキーあるいはFキー以外のキーを押した場合は無視される。

図4

 

30試行が終了すると、ポップアウト(図1の場合)とポップアウトでない(図2の場合)の正の反応時間の中央値が図5に示すように表示される。ポップアウト条件の方が反応時間の短いことが確認できる。

図5

 

提示画像は、ピクチャーボックス

 

        PictureBox ^ pb;

 

に、以下のコード

 

                                 for (int i = 0; i < N_st; i++){

                                         int bx, by;

                                         if (rn->uni() < 0.5) bx = 0; else bx = 1;

                                         if (rn->uni() < 0.5) by = 0; else by = 1;

                                         switch(v_st[i].c){

                                                case 'L': vStr = "L"; break;

                                                case 'T': vStr = "T"; break;

                                                default : vStr = " "; break;

                                         }

                                         switch(v_st[i].vColor){

                                                case red: vBsh = bshRd; break;

                                                case green: vBsh = bshGrn; break;

                                                default:        vBsh = bshW; break;

                                         }

                                         int ix = i % 6;

                                         int iy = i / 6;

                                         g->DrawString( vStr, fnt, vBsh, pos(ix, bx), pos(iy, by) );

                                 }

 

で画像を描いてから、提示用ピクチャーボックスのプロパティImage

 

                         pictureBox1->Image = pb->Image;

 

と代入する方法で提示している。

反応は

 

                         this->KeyPreview = true;

 

とキー押しがプログラムで処理できるようにしてから、キー押しイベントに対するイベントハンドラ

 

        private: System::Void Form1_KeyDown(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {

                                 if (checkRes == 0){

                                         if(e->KeyData == Keys::P) presentST();

                                 } else if (checkRes == 1) {

                                         switch (e->KeyData){

                                                 case Keys::J : ResID = 'J'; Record(); break;

                                                 case Keys::F : ResID = 'F'; Record(); break;

                                                 default : break;

                                         }

                                 };

                         }

 

で処理している。

イベントハンドラの用意の仕方などは<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房p. 235で説明している。

反応時間はミリ秒単位で関数

GetTickCount()

によって測っている。この関数を用いるためのヘッダーファイルを

#include "Windows.h"

includeしている。

 

 

参考文献: S. Nolen-Hoeksema, B. L. Fredrickson, G. R. Loftus & W. A. Wagenaar (2009)  Atkinson & Hilgard's introduction to psychology, 15th ed.  Wadsworth.

 

Up