【问题标题】:How to show grayscale intensity image in its RGB form without merging the channels?如何在不合并通道的情况下以 RGB 形式显示灰度强度图像?
【发布时间】:2017-09-04 09:03:07
【问题描述】:

我有一个具有三个通道(红色、绿色和蓝色)的显微镜图像,每个通道是单位 16 强度图像。我想显示每个频道 在子图 (1,3) 中,但以它们的颜色形式 (RGB)。我发现使用以下命令,我可以将所有通道变成一个 RGB 图像, 但我想在一个子图中显示每个通道。

overlay=cat(3,imadjust(mat2gray(RED)),imadjust(mat2gray(GREEN)),imadjust(mat2gray(BLUE)));

是否可以将我的强度灰度图像显示/转换为 RGB 格式?我还发现下面的行可以支持 RGB 格式的每个通道 但是输出图像没有调整(主要是黑色),我无法通过 imadjust 命令调整它,因为它不再是灰度。

red_IM = cast(cat(3, RED, zeros(size(RED)), zeros(size(RED))), class(RED));

如果有人可以帮助我,我将不胜感激。

谢谢

【问题讨论】:

  • 您能否显示输入通道的直方图或您的 red_IM 图以便理解问题?

标签: matlab rgb


【解决方案1】:

您可以分成不同的通道并调整每个通道:

im = im2double(imread('peppers.png'));
r = imadjust(im(:,:,1));
g = imadjust(im(:,:,2));
b = imadjust(im(:,:,3));
z = zeros(size(r),'like',r);
r = cat(3,r,z,z);
g = cat(3,z,g,z);
b = cat(3,z,z,b);
subplot(131);
imshow(r);
subplot(132);
imshow(g);
subplot(133);
imshow(b);

【讨论】:

  • 它说:“索引超出矩阵维度。”
  • 我猜是因为你的红、绿、蓝已经分开了?尝试用mat2gray(RED)替换im(:,:,1)等等
  • 您的问题作为评论真的很难理解。考虑将此答案标记为已接受并打开一个新问题
  • 谢谢,我发布了一个新问题。
猜你喜欢
  • 2017-02-04
  • 2022-01-19
  • 2019-03-15
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
相关资源
最近更新 更多