视觉心理物理学(2)matlab与ptb3
典型的心理物理实验通常通过各种显示设备向观察者显示刺激(常将处理过的特殊数字图像作为刺激),通过交互设备(键盘、鼠标、按键盒等)接收被试者反应。
通过matlab及psychtoolbox3工具包完成实现所需的刺激呈现、应答接收、以及数据拟合处理......
Psychtoolbox的维基网址为http://psychtoolbox.org/wiki 该网站中提供了一个论坛,以及供用户下载和安装Psychtoolbox的软件包以及系统要求的版本信息。
Psychtoolbox网站上概述和介绍,以及各种教程http://psychtoolbox.org/PsychtoolboxTutorial 读者还可以使用MATLAB中的帮助功能访问与工具箱函数的文档介绍页面。
图像(正弦光栅、外部噪声图像和纹理等)通常在文件或计算机内存中以数字形式保存为位图或像素图——位或像素(图像元素)的空间映射表示图像在x,y处每一点的颜色。
图像的位图是具有相应行数和列数的二维像素阵列。每个像素元素给出图像中对应行和列位置中的像素强度值。图像像素通常被存储为1,4,8,16,24,32,48或64位/像素。位/像素的数值被称为颜色深度。
(1)正弦波是视觉心理物理学中的基本图形。Gabor是一个由二维高斯(正常或钟形)函数窗口化的正弦波,具有明确的空间频率范围,并包含在窗口化的空间中,它是视觉研究中最常用的刺激之一。
l(x,y)=l0 (1.0±csin{2 π f [ysin(θ)+xcos(θ)]}) 正弦波方程
l(x,y)=l0 (1.0±csin{2 π f [ysin(θ)+xcos(θ)]}×exp[ ]) Gabor的方程 l(x,y)是图像中位置(x,y)处像素的灰度级,l0是平均灰度级,f是正弦波的频率(1 /像素),θ是正弦波的倾斜角
效果图(中)生成matlab代码(右) meshgrid 函数用来生成网格矩阵,可以是二维网格矩阵
(2)白噪声图像
噪声图像通常用于改变图像质量或终止视觉处理。常用高斯白噪声(即是每个像素的值均从均值等于中值或中性灰度、标准差为可实现强度值范围中一部分的正态分布中随机抽取)
(3)滤波图像
我们常需要不同空间频率的图像刺激,通过matlab设计不通滤波器可实现不同图像的处理。
1. imread 读取图像,得到矩阵map和相应的颜色映射M 如 [M,map] = imread ( 'Church.jpg','jpeg' ) ;% M is a true color image in a 1944x2896x3 matrix showImage (M,' ' ) ;%显示图片
2. rgb2gray 灰度变换(将真实的RGB图像转换为灰度图像)、函数可以保留亮度信息的同时,消除有关色彩的色调和饱和度的信息
[M,map] = imread ( 'Church.jpg','jpeg') ; M2 = rgb2gray(M) ; showImage (M2,'grayscale' ) ;
3. im2bw 读取并将图像转换为二进制黑白图(无灰度)
4. 几何变换 调整大小、旋转和裁剪
5. 滤波 滤波用于删除或减少图像的某些特性或成分,空间频率滤波器被用于创建特殊的实验刺激。
通过快速傅立叶变换(fft2)来完成的,fft2对图像中每个空间频率的数量进行编码
傅里叶分析用空间频率内容来描述一幅图像。低空间频率对应于空间中强度的缓慢起伏,而高空间频率对应于空间中强度的快速变化。
(1)低通滤波器 衰减高空间频率,同时“通过”(保持)低空间频率,这会模糊原始图像
(2)高通滤波器 保持高空间频率的同时衰减低空间频率,保留图像中更锐利的边缘
(3)带通滤波器 衰减非常低和非常高的空间频率
· 原始教堂图片及其傅里叶频谱(第一行)
· 低通滤过的教堂图片及其傅里叶频谱(第二行)
· 高通滤过的教堂图片及其傅里叶频谱,以及高通滤波器(第三行)
· 带通滤过的教堂图片及其傅里叶频谱,以及带通滤波器(第四行)
图像的傅立叶描述包括幅度谱和相位谱。幅度谱表示每个空间频率分量的幅度(数量),而相位谱描述了正弦波频率分量的位置。
一、matlab基础
常见函数和知识点:https://blog.csdn.net/nonmarking/article/details/20424997
简要列举经常用到的:
1. 连接数组 C=cat(dim, A,B)--cat(2,A,B)与[A,B]相同,cat(1,A,B)与[A;B]相同
数组初始化:zeros(m,n)返回用0初始化的m行n列的矩阵,ones返回1初始化的m行n列矩阵
2. 类型转换 num2str :把数字转换为字符串
str2double :把字符串转换为双精度浮点数
str2num :把字符串转换为数字
3. 元胞数组 cell :创建元胞数组 c=cell(n)c=cell(m,n)
celldisp :显示元胞数组的内容
cellfun :把函数应用于元胞数组中的每个元素 A=cellfun(fun, C, D,...)
cellplot :以图形形式显示元胞数组的结构
cellstr :根据字符串数组创建字符串元胞数组
mat2cell :把矩阵分割为元胞数组 c=mat2cell(x,m, n)
num2cell :把数值数组转变为元胞数组 C=num2cell(A)
4. 字符串 strcmp , strcmpi(不区分大小写) :比较字符串---strcmp('str1','str2')相同返回1,不同返回0
5. 基本运算 + :加法运算符
- :减法运算符
* :矩阵乘法
.*:数组乘法
/:斜杠或者矩阵右除 B/A等于公式B*inv(A)
./:数组右除 A./B等于A(i,j)/B(i,j)
\:反斜杠或者矩阵左除 A\B等于inv(A)*B
.\:数组左除 A.\B等于B(i,j)/A(i,j)
^:矩阵幂计算
.^:数组幂计算 A.^B等于A(i,j)的B(i,j)次幂
’:矩阵转置
[]:表示空矩阵,A(m,:)删除A中的一行,A(:,n)删除A中的一列
{}:元胞组赋值
关系操作符:< <= > >= == ~ =
逻辑操作符 : 逻辑:&& || 、 数组:& | ~
6. 矩阵
取值:e(2 , :)%取第2行所有元素
e(: , 3)%取第三列所有元素
e([1 3] , :)%取第1和第3行所有元素
e([1 3] , [2 4]) %分别取e(1,2);e(1,4);e(3,2);e(3,4)的元素
翻转:flipud(e)%矩阵上下翻转
fliplr(e)%矩阵左右翻转
rot90(e)%矩阵旋转90度
7. 绘图 v1=0:10:100
v2=9/5*v1+32
figure(n)% 新建第n个图形figure
plot(v1 , v2, 'ro-') %以v1为横坐标 v2为纵坐标进行描点画图用-连接起来
hold on;保持原图叠加绘图 subplot % 将多个图画到一个平面上
二、ptb3 基础知识 核心函数 Screen 窗口函数 、所有屏幕:Screen("Screens")、 获取帮助:Screen("Openwindow?")
ptb3通过Screen窗口函数向受试者呈现各种满足实验需求的刺激,常用函数整理:
(1). 打开一个窗口 Screen('Openwindow',0) 关闭窗口 Screen('Close',w)
(2). try-catch-end ,try下面的语句出现问题的时候,会自动执行catch后面的语句,跳出程序,不会出现程序卡死等问题
(3). Screen的画图子函数 FillRect FrameRect FillOval FrameOval FillArc FrameArc DrawLine
% 1.直线 Screen('DrawLine', windowPtr [,color], fromH, fromV, toH, toV [,penWidth]);
% 2.曲线Screen('DrawArc',windowPtr,[color],[rect],startAngle,arcAngle)
% 3.曲线Screen('FrameArc',windowPtr,[color],[rect],startAngle,arcAngle[,penWidth] [,penHeight] [,penMode])
% 4.填充多边形Screen('FillArc',windowPtr,[color],[rect],startAngle,arcAngle)
% 5.更换背景色Screen('FillRect', windowPtr [,color] [,rect] );
% 6.多边形边框填充Screen('FrameRect', windowPtr [,color] [,rect] [,penWidth]);
% 7.绘制圆形Screen('FillOval', windowPtr [,color] [,rect] [,perfectUpToMaxDiameter]);
% 8.Screen('FrameOval', windowPtr [,color] [,rect] [,penWidth] [,penHeight] [,penMode]);
% 9.矩阵绘制Screen('FramePoly', windowPtr [,color], pointList [,penWidth]);
% 10.填充多边形Screen('FillPoly', windowPtr [,color], pointList [, isConvex]);
(4). 刺激应答
fprintf('Please click the mouse now.\n');%鼠标应答,获取按下的坐标
[x,y,buttons] = GetMouse;
while any(buttons) % if already down, wait for release
[x,y,buttons] = GetMouse;
end
KbName('UnifyKeyNames'); % 键盘应答、定义键盘按键
larrow = KbName('LeftArrow'); % 定义左右键
rarrow = KbName('RightArrow');
(5). 其他
Screen('Flip',w); %屏幕刷新
HideCursor; %隐藏鼠标的光标,以免实验过程中受到打扰
ShowCursor; %显示光标
KbWait; %等待按键的命令、按任意键继续
Waitsecs(2); %保持图形可见2秒
% 程序示例1 以下是新建一个窗口helloworld实例
try Screens=Screen('Screens'); ScreenNum=max(Screens); % 打开一个新的屏幕 [w, wRect] = Screen('OpenWindow', ScreenNum); % w指代当前的屏幕的位置大小信息,当前屏幕的分辨率是1680×1050, wRect就是[ 0 0 1680 1050] black=BlackIndex(w); white=WhiteIndex(w); gray=(white+black)/2; % 当前屏幕的最大、最小灰度值,一般white=255, black=0; 两者均值设为gray Screen('FillRect',w,gray); %把屏幕w涂成gray颜色 Screen('Flip',w); %需要flip上面对屏幕的操作才会显现出来 HideCursor; %隐藏鼠标的光标,以免实验过程中受到打扰 Text='Hello World!'; %需要呈现的文字 %oldTextSize=Screen('TextSize',w,36); %调整文字的大小为36号 Screen('DrawText', w, Text, 420, 340,[0,0,255]); %呈现文字在屏幕上的函数,颜色为蓝色 Screen('Flip',w); %同上面。需要flip对屏幕的操作才会显现出来 KbWait; %按任意键继续 Waitsecs(2); %屏幕2秒 Screen('CloseAll'); %结束,关闭屏幕 ShowCursor; %显示光标(前面把光标隐藏了),否则程序结束后屏幕上也没有光标
catch ShowCursor; Screen('CloseAll'); Priority(0); psychrethrow(psychlasterror);
end
视觉心理物理学(2)matlab与ptb3相关推荐
- 物理学常数 matlab,[转载]科学计算:Python VS. MATLAB(6)----物理常数
科学计算:Python VS. MATLAB(6)----物理常数 物理常数亦被称为物理学常量或自然常数,指的是物理学中数值固定不变的物理量,是一个与物理测量无关的固定值.物理常数有很多,其中比较著名 ...
- MATLAB可视化大学物理学光盘,MATLAB可视化大学物理学
本书物理和程序并重,即讲解了物理学的基本知识,公式的推导,还给出了很多实例的计算机程序. ¥69.00定价:¥69.00 本书物理和程序并重,即讲解了物理学的基本知识,公式的推导,还给出了很多实例的计 ...
- Objective Quality Assessment of Tone-Mapped Images
Abstract 将高动态范围(HDR)图像转换为低动态范围(LDR)图像的色调映射操作符(TMOs)为HDR图像在标准LDR显示上的可视化提供了实用的工具.不同的TMOs创建不同的色调映射图像,一个 ...
- 《A Model of Saliency-based Visual Attention for Rapid Scene Analysis》翻译和笔记
原文链接:A Model of Saliency-based Visual Attention for Rapid Scene Analysis 以机翻为主,人工校对. 摘要 A visual att ...
- D.Marr的计算视觉理论
人机融合智能中输入表征阶段里数据与信息/知识的融合就是能指与所指的切换.事实与价值的转化.形式化与意向性的联结.being与should的过渡.语法与语义的调度.Marr的工作对此可见一斑: 剑桥大学 ...
- 于殿泓 图像检测与处理技术_图像检测与处理技术(21世纪高等学校仪器仪表及自动化类专业规划教材)...
导语 本书是21世纪高等学校仪器仪表及自动化类专业规划教材,从图像检测与处理技术的整体知识框架出发,让读者对图像检测与处理技术的基本内容.背景以及相关的基础理论有深刻的理解.其中包括图像检测的物理基础 ...
- 于殿泓 图像检测与处理技术_二手图像检测与处理技术 于殿泓 计算机 西安电子科大学出版社...
基本信息 书名:图像检测与处理技术 原价:18.(咨询特价) 作者:于殿泓 出版社:西安电子科技大学 出版日期:2006年12月1日 ISBN(咨询特价) 字数: 页码:231 版次:第1版 装帧:装 ...
- FedDG:在连续频率空间中通过情景学习进行医学图像分割的联合域泛化
摘要 论文地址:https://arxiv.org/pdf/2103.06030.pdf 联邦学习使分布式医疗机构可以共同学习具有隐私保护功能的共享预测模型.在进行临床部署时,如果将联合学习中训练 ...
- 深度学习推动数字人文科学发展
--研究人员利用人工智能解开古代文献的秘密 图 1 瑞士的圣加勒修道院图书馆 在瑞士的圣加勒修道院图书馆收藏了大约16万卷,可追溯到八世纪的文学和历史手稿.所有这些手稿都是用现代很少使用的语言手工写在 ...
- matlab可视化大学物理学_传输矩阵法在大学物理波动光学教学中的应用
1 提出问题 在现代光学技术中,从基本的光学元件增反膜和增透膜[1],到超快光路中用来补偿飞秒激光色散的啁啾镜,以及半导体微腔领域中广泛使用的分布式布拉格反射器(DBR)[2],这些光学元件基本的特征 ...
最新文章
- 和12岁小同志搞创客开发:如何选择合适的传感器?
- spyder怎么显示文件目录_MKV怎么转换为MP4?用它,快速转换!
- php 派生类 构造,C++派生类的构造函数和析构函数
- Java Thread 多线程 操作线程
- SQLyog 注册码记录
- HCIE-Datacom V1.0 考试大纲
- 特斯拉为什么要“干掉”保险丝和继电器?
- 转载:微信抢红包算法
- window 脚本文件.bat获取最高权限拷贝文件及c++调用.bat文件示例
- linux磁盘转gpt,Linux中磁盘如何转换GPT格式
- 【回文数】求11到n之间(包括n),既是素数又是回文数的整数有多少个。 输入 一个大于11小于1000的整数n。 输出 11到n之间的素数回文数个数。 样例输入 Copy 23 样例输出 Copy 1
- 手机失窃个人信息泄露彻底
- 非虫 android应用逆向,android逆向-ARM汇编基础-非虫笔记
- matlab 画网格
- 为C1Menu for Silverlight添加动画显示效果
- 【论文阅读】让数据库听懂人话(Text-to-SQL)
- ISO 8583报文
- 未明学院:用excel不好吗?为什么还要学python?
- 7个从Windows计算机上恢复Word文档的方法
- FAQ: ggplot2常见问题