当前位置:
文档之家› 北大心理学系psychtoolbox2
北大心理学系psychtoolbox2
clear all face = imread ('face.jpg'); house = imread ('house.jpg'); mix (:,:,1) = face(1:680,1:550,1); mix (:,:,2) = house(1:680,221:770,2); mix (:,:,3) = 0; imshow (mix);
Psychtoobox
Lihan Chen 2015.4.28
MATLAB 图像刺激
• 图像处理
– 图像基础 – 图像的变换与操纵 – 计算生成图像
像素、颜色、索引图像
图像基础
图像基础——像素
• 数字图像
– 离散的坐标:像素 – 离散的强度:0~255 (黑~白)
图像基础——颜色
• RGB颜色系统
调整曲线、窗口化
图像的变换与处理
像素亮度的变换操作 (PS中的“曲线”)
实例:去除扫描时背面透过来的影
• • • • • • im = imread('book-000123.png'); g = rgb2gray(im); d = double(g); y = uint8(d*1.7-85); imshow(y); imwrite(y, 'out.png');
• 将face.jpg 与 house.jpg 融合成一张图片, face占用红色通道,house占用绿色通道, 蓝色通道取值0. 由于两张图片不一样大, 最后结果保留两张图片重叠部分即可,如 示例mix.jpg (imread 读出的数据是uint8, 取值范围是0-255,imshow 图片的取值 范围是0-1,中间需要除以255这个系数)
– 每个像素的红、绿、蓝均由uint8表示 (0~255) – alpha通道:透明度 – 24位/32位真彩色 imtool(' photo.jpg');
用MATLAB存取并显示图片
读取并显示图片 • im = imread('tmp.png'); • size(im) • imshow(im) 写入图片 • imwrite(im, 'tmp.jpg');
clear all close all colormap(gray(256)) %将颜色查找表设置为灰度图 img = reshape(1:256,16,16); image(img); axis square %将长宽设置为等长 axis off pause for i=1:200 paintpots = rand(256,3); %将颜色查找表设为随机,图片的像素颜色也变成随机 colormap(paintpots); drawnow % 立刻呈现 end
image与colormap
• image函数是MATLAB最基本的图像显示函数, 可以绘制索引图像,即每个像素的值对应 颜色查找表中的索引 • colormap:定义图像显示用的颜色查找表 • imagesc将数据scale后绘制成图(例如绘制 相关矩阵)
image与imshow
• Imshow仅用于显示由RGB或灰度值定义的图 像(image也可以) • 无论是哪个函数,若图像是以uint8表示的, 则取值范围为0~255,若以double表示,则 取值范围是0~1
a(:,i) = a(:,i-1)+rand(10,1)*0.5;
1 0.95
end imagesc(corr(a)) colorbar colormap autumn
data.mat 中保存了一组虚拟的fMRI数据,数据 里记录了V1,V2,V3,V4,V5,ips 6个脑区 100个时 间点的值,请画出其6x6 的相关矩阵。
image 绘制数据
imagesc & colormap
• 绘制相关矩阵 a = rand(10); for i = 2:10
1 2 0.9 3 0.85 4 0.8 5 0.75 6 0.7 7 0.65 8 9 10 2 4 6 8 10 0.6 0.55 0.5
Psychtoolbox-1-listing-lst4.m
Psychtoolbox-1-listing-lst系数
生成高斯窗口
load data.mat fdata=[V1,V2,V3,V4,V5,ips]; imagesc(corr(fdata))
马赫带效应 Psychtoolbox-1-listing-lst3.m
clear all %清除变量,MEX等,如果有需要的变量还不想清除,需要小心 close all % 关闭各种figure窗口 img=1:10; %图片的值,即是选择colormap第1-10的值 figure(1) %打开figure编号为1的窗口 paintpots = ones(10,3); % 自己创建的一个颜色查找表 colormap(paintpots) %将定义好的对应关系输入系统 image(img); %呈现图片 axis off; %取消在这个任务中没有意义的轴 for i=1:10 paintpots (i,:)= (i/10);%令查找表的第i位的值为i/10,即是最大亮度的i/10倍 colormap(paintpots);%将更新的查找表输入系统 pause %等待按键,注意看figure中图片的变化 end
a=[ones(400,40),zeros(400,40)]; %先生成一根白条和一根黑条 a1=repmat(a,[1,5]); % 将这个组合复制5遍 a2=xor(a1,a1’);%将这个黑白条纹与自己的转置做异或逻辑运算 imshow(a2) %棋盘格就生成了
实例:红蓝3D与双眼竞争
• im1 = imread('Koala.jpg'); • im2 = imread('Penguins.jpg'); % 用第二幅图替代第一幅图的红色通道 • im1(:,:,1) = im2(:,:,1); % 把绿色通道清零 • im1(:,:,2) = 0; • imshow(im1)