首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为覆盖在灰度图像上的彩色图像添加“colorbar”和设置“clim”?

如何为覆盖在灰度图像上的彩色图像添加“colorbar”和设置“clim”?
EN

Stack Overflow用户
提问于 2013-06-27 21:45:27
回答 1查看 6K关注 0票数 1

我正在尝试将彩色图像叠加在灰度图像上。但是,当我尝试绘制“colorbar”并设置“clim”时。Matlab总是根据下面的灰度图像产生一个颜色条。

但是,我想要获取覆盖的彩色图像的颜色条。如有任何建议,我们将不胜感激。非常感谢。

代码语言:javascript
复制
%% Example codes:
  greyImage = imread('AT3_1m4_08.tif');
  colorImage = imread('hestain.png');

  figure,

  greyImagePlot = image(greyImage); colormap(gray); hold on;

  overlayImage = imagesc(colorImage, ...
      'CDataMapping', 'scaled', 'HitTest', 'off');
  alF = 0.5.*ones(size(colorImage, 1), size(colorImage, 2));
  set(overlayImage, 'AlphaData', alF);
  colorbar; % This will show a grey scale colorbar not the colour one I want
  set('CLim', [0 100]); % Also, the colormap limit here is not working

  axis off          
  axis image        
EN

回答 1

Stack Overflow用户

发布于 2013-06-27 23:10:55

单个图形/多个色彩映射表的参考可以在这里找到http://www.mathworks.fr/support/solutions/en/data/1-GNRWEH/index.html

特别是在使用图像时,可以使用'subimage‘函数。

当一个自制的解决方案太复杂时,我也会使用'matlabcentral‘中的'FreezeColor’和'cbfreeze‘函数。http://www.mathworks.com/matlabcentral/fileexchange/7943-freezecolors-unfreezecolors http://www.mathworks.com/matlabcentral/fileexchange/24371

一种直接的、懒惰的解决方案,用于在同一轴内的多个绘图中保持颜色条:首先绘制彩色图像及其颜色条,冻结颜色条,然后在灰度图像上绘制(无透明度),最后再次绘制彩色图像(透明度)。

这是一段代码。

代码语言:javascript
复制
figure;

%first step: RGB image and colorbar
overlayImage = imagesc(colorImage, 'CDataMapping', 'scaled', 'HitTest', 'off');
alF = 0.5.*ones(size(colorImage, 1), size(colorImage, 2));
set(overlayImage, 'AlphaData', alF);
colorbar; 
set(gca, 'CLim', [0 100]); 

cbfreeze; %from 'COLORMAP and COLORBAR utilities' in Matlab Central

%second step: gray image (no transparency)
greyImagePlot = image(greyImage); colormap(gray); hold on;

%third step: plot colour image
overlayImage = imagesc(colorImage, ...
  'CDataMapping', 'scaled', 'HitTest', 'off');
alF = 0.5.*ones(size(colorImage, 1), size(colorImage, 2));
set(overlayImage, 'AlphaData', alF);

axis off          
axis image   
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17344915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档