matlab - 根据一个颜色 channel 的强度将 RGB 图像转换为灰度图像

标签 matlab image-processing rgb grayscale hsv

<分区>

我正在处理与此类似的图像:a cell image ,我只想提取红粉色部分。到目前为止,我正在使用 img(:,:,1) 提取红色值,但这会生成二进制图像。我想知道是否有一种方法可以提取“红色”值并根据它们的“红色”程度或强度生成灰度图像。任何帮助都是极好的。

最佳答案

您可能会使用 imshow 来可视化结果,它会自动将轴的颜色限制设置在 01 之间。您的图像是 RGB,红色 channel 的值范围从 0255。因此,如果您只为 imshow 指定一个输入,您将得到一张图像,其中所有值 > 1 都显示为白色,所有零值都显示为黑色。所以你的图像并不是真正的二元图像,它只是以这种方式出现

您想要使用 imagesc 显示您的图像,它将自动缩放颜色限制以匹配您的数据:

imagesc(img(:,:,1));
colormap gray

或者您可以指定 imshow 的第二个输入以使其也缩放以适合您的数据范围:

imshow(img(:,:,1), [])

当您可视化所有 channel 时,这不是问题的原因是,如果您指定红色、绿色和蓝色 channel ,这将被视为真彩色图像,所有轴颜色限制都将被忽略。

关于matlab - 根据一个颜色 channel 的强度将 RGB 图像转换为灰度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38573288/

相关文章:

colors - 为什么是RGB而不是CMY?

matlab - 如何让 Matlab Compiler 运行得更快?

CSS:图像透明度键

java - 将图像保存在特定文件夹中并将路径存储在 mysql 中以便稍后显示

python - 从图像中查找车轮中的辐条总数 - OpenCV (Python)

c++ - 在 C++ 中将 RGB 转换为 HSL

java - 显示图像的 RGB 编号

Matlab - 三角函数的乘积简化

excel - 如何将字符串从 Excel 导入 MATLAB?

python - 在Python中生成随机稀疏正半定矩阵