This question already has an answer here:
Access RGB channels in an image in MATLAB
(1 个回答)
4年前关闭。
我正在处理与此类似的图像: a cell image ,我只想提取红色-粉色部分。截至目前,我正在使用
或者,您可以指定
当您可视化所有 channel 时,这不是问题的原因是,如果您指定红色、绿色和蓝色 channel ,这将被视为真彩色图像,并且所有轴的颜色限制都将被忽略。
(1 个回答)
4年前关闭。
我正在处理与此类似的图像: a cell image ,我只想提取红色-粉色部分。截至目前,我正在使用
img(:,:,1)
来提取红色值,但这会产生一个二进制图像。我想知道是否有办法提取“红色”值并根据它们的“红色”或强度程度生成灰度图像。任何帮助都是极好的。 最佳答案
您可能会使用 imshow
来可视化结果,它会自动将轴的颜色限制设置在 0
和 1
之间。您的图像是 RGB,红色 channel 的值将从 0
到 255
。因此,如果您只为 imshow
指定一个输入,您将获得一张图像,其中所有值 > 1
将显示为白色,所有零值都将显示为黑色。所以你的图像并不是真正的二进制,它只是看起来那样。
您想使用 imagesc
显示您的图像,它会自动缩放颜色限制以匹配您的数据:
imagesc(img(:,:,1));
colormap gray
或者,您可以指定
imshow
的第二个输入,使其也缩放以适合您的数据范围:imshow(img(:,:,1), [])
当您可视化所有 channel 时,这不是问题的原因是,如果您指定红色、绿色和蓝色 channel ,这将被视为真彩色图像,并且所有轴的颜色限制都将被忽略。
关于matlab - 根据一个颜色 channel 的强度将RGB图像转换为灰度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38573288/