仅着色特定像素

时间:2014-03-24 20:01:25

标签: image matlab image-processing

我有一个表示大脑图像的矩阵,每个(i,j)位置的值介于0和1之间。我正在应用颜色贴图,因此值为1的像素为红色,0为黄色,在中间获取中间价值。现在,我想要的是那些值大于0.8的像素根据色彩图获得颜色并且休息变得透明(即它们没有得到任何颜色),这样我就可以用另一个大脑图像覆盖这个图像并识别高活动区域。我该怎么做?

我有像这样的图像 fmri image

我只想要亮黄色的部分,这样我就可以将它与其他图像叠加在一起并得到类似的东西。 overlayed image

编辑:

我按照Jigg建议的方法,但最近观察到最终的图像被旋转和反转,任何想法为什么? final_image

2 个答案:

答案 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的更多选项。