在matlab中覆盖图像上的数据

时间:2012-08-14 17:05:08

标签: matlab

我想要将两个图表叠加在一起,如下面的链接所示:

enter image description here

输入是左边的两个图像,输出是右边的图像。这是我使用的代码:

reference = imread('ref_foam.png');
figure, imshow(reference);
hold on;
h = imshow(data,[]);
hold off
colormap jet;
alphamap = zeros(size(reference,1),size(reference,2));
for i = 0:size(data,1)-1
    for j = 0:size(data,2)-1
        if(~(data(i+1,j+1) == 0))
             alphamap(i+1,j+1) = 0.75;
        end            
    end
end
set(h, 'AlphaData', alphamap);

任何时候数据数组中都为零,它会将透明度设置为零,否则会将透明度设置为0.75。

现在,我的问题是:如何才能将colormap应用于数据阵列?在这个例子中它可以工作,但是如果我将“reference”转换为灰度,那么colormap也适用于它。色彩映射的输入是一个轴句柄,无论如何输入图像的句柄(h),以便它只适用于顶部(数据)数组?另外,我也想实现一个颜色条。反正是否只将颜色条应用于数据数组?感谢。

1 个答案:

答案 0 :(得分:0)

您可能希望使用subimage命令 - 它允许您使用不同的颜色映射在同一图形上创建图像。

在脚本中创建和修改后,通过将图像的轴位置设置在彼此的顶部来覆盖图像。