Python/Psychopy:计算1度视角

Python/Psychopy: calculating 1 degree of visual angle

我需要知道有多少像素构成 1 度的视角,以便创建正确大小的刺激以使用 Python/Psychopy 显示。

谁能帮我根据以下信息计算出1度的视角(以像素为单位)?

显示器:1680 x 1050 分辨率 Nonitor 宽度 = 477mm (47.7cm) 显示器高度 = 268mm (26.8cm)

距屏幕的观看距离 = 530mm

我注意到周围有一些计算器,但他们似乎已经想要视角的度数(我猜他们正在从我所在的位置向后计算)

谢谢, 史蒂夫

1680 pxls/477 mm = 3.52 pxls/mm = pxldensity_x
1050 pxls/268 mm = 3.91 pxls/mm = pxldensity y 

tan (1 degree)  = 0.0174  =  rise/run = D / 530 mm  -->

 D (physical size of 1 degree on monitor)= 9.22 mm

 pixels within 1 degree (x-direction)  = D * pxldensity_x = 32 pxls
 pixels within 1 degree (y-direction)  = D * pxldensity_x = 36 pxls

人眼的 angular 分辨率约为 1 arcmin(1/60 度),因此您可以在此屏幕上看到 1/2 的像素,这意味着您可以感知像素化。有趣的是,该极限与视网膜上传感器的横向分离和良好照明下眼睛瞳孔的衍射极限相匹配,证明了进化的经济性。

PsychoPy 可以为您做到这一点。在 Monitor Center 中,告诉 PsychoPy 你的显示器的尺寸以及它离参与者眼睛的距离,然后你可以以 'deg' 为单位指定所有刺激大小。 (虽然 PsychoPy 实际上假设您的像素是正方形的)。

实际上,PsychoPy 可以更进一步,它可以纠正屏幕是平的这一事实,这意味着角落比中心更远,这意味着 1deg 是角落处的像素多于中心。大多数人更喜欢屏幕上的所有内容都是相等的,即使这不太准确;它 "looks" 错了,但实际上更正确。

完整信息: http://www.psychopy.org/general/units.html#degrees-of-visual-angle