二值图像Matlab的叠加于imagesc(Matlab overlay imagesc on bi

2019-10-28 13:28发布

我想在二值图像的顶部覆盖的于imagesc图像。 我搜索了它的在线,但没有运气。 下面是我的代码:

figure;
imshow(BW4);
hold on
imagesc(image2,'AlphaData',0.5); axis equal; axis tight; axis off;
myColorMap = jet(256);
myColorMap(1,:) = 0;
colormap(myColorMap); colorbar;
hold off

什么我收到看起来像右下图像的输出,而不是在的白色顶喷颜色表行。 有人可以帮我解决这个问题? 我很欣赏你的时间和精力。

谢谢,

二值图像

喷气图片

是什么结果我得到它,我不想

Answer 1:

所以,我们首先看你的体重数据a ,并创建一些喷射图像b这是强度的一些n×m的矩阵:

 a=rgb2gray(imread('fFIG2.png'));
 a=a==max(a(:)); 
 a=a>0; % now it is binary

% make jet data with 0 being it's minimal value
b=(imresize(peaks(100),size(a))).*a ;
b=b.*(b>0);

现在,我们在标准化数据b 0和1之间,使RGB阵列出来。 在我们将创建一个面具,白分配给它...

cmap=[0,0,0;jet(255)]; % set the colormap to be always black and jet

% normalize from nxm matrix to nxmx3 rgb values
c=b;
c=round( ((c-min(c(:)) )/(max(c(:))-min(c(:))))*(length(cmap)-1)+1);
im=reshape(cmap(c(:),:),[size(c),3]);

% get the mask for all pixels that are in a but are zero in b
bw2=repmat( (a>0 & b==0),[1 1 3]);
im(bw2)=1; % assign this pixels with rgb=white
imagesc(im)



文章来源: Matlab overlay imagesc on binary image
标签: matlab