我有一个表示大脑图像的矩阵,每个(i,j)位置的值介于0和1之间。我正在应用颜色贴图,因此值为1的像素为红色,0为黄色,在中间获取中间价值。现在,我想要的是那些值大于0.8的像素根据色彩图获得颜色并且休息变得透明(即它们没有得到任何颜色),这样我就可以用另一个大脑图像覆盖这个图像并识别高活动区域。我该怎么做?
我有像这样的图像我只想要亮黄色的部分,这样我就可以将它与其他图像叠加在一起并得到类似的东西。
编辑:
我按照Jigg建议的方法,但最近观察到最终的图像被旋转和反转,任何想法为什么?
答案 0 :(得分:3)
这是另一种选择,创建一个复制灰度脑图像的3层阵列(imagesc
将按比例缩放每一层,得到相等的r,g和b值 - >灰度等级。
GrayBckgnd = repmat(brain, [1, 1, 3]);
data = …
然后用活动数据覆盖它:
imagesc(GrayBcknd);
hold on;
DataImg = imagesc(data);
set(DataImg, 'AlphaData', im2double(data>0.8));
colormap jet; % or any other colormap.
答案 1 :(得分:2)
您可以通过绘制surf( - ace)并传入Alpha值来实现此目的。
brain = ... % background brain image
data = ... % the data you are trying to overlay
imshow(brain);
hold on;
surf(zeros(size(data)), data, 'AlphaData', data > 0.8);
colormap(...); % whatever colormap you like
查看surface properties文档,了解可以传递给surf
的更多选项。