如何在matlab中将L*a*b*转换为灰度

Posted

技术标签:

【中文标题】如何在matlab中将L*a*b*转换为灰度【英文标题】:How to convert L*a*b* to grayscale in matlab 【发布时间】:2012-12-03 08:07:39 【问题描述】:

我已经将RGB 图像转换为La*b* 色彩空间,但我想将其转换为灰度。我不确定我是否可以使用rgb2gray

有什么想法吗?

【问题讨论】:

【参考方案1】:

Lab色彩空间的L通道是灰度部分。照原样使用它。使用rgb2gray 将无法按预期工作,因为它预计您作为输入提供给它的三个通道来自RGB 色彩空间。

【讨论】:

【参考方案2】:

如果您有 CIELa*b* 颜色空间表示中的图像,您可以使用 Lab2RGB(可以找到 here)将其转换回 RGB,然后使用函数 rgb2gray 将您的图像转换为灰度。

请注意,rgb2gray 生成的灰度图像与RGB2Lab 生成的Lchannel 存在差异。

在Matlab中,灰度是简单实现的

0.2989 * R + 0.5870 * G + 0.1140 * B 

L 是通过更复杂的方式 (see source code) 实现的,因此会给出不同的结果。

所以请根据您的需要或要求明智地选择!

【讨论】:

以上是关于如何在matlab中将L*a*b*转换为灰度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中将 RGB 图像转换为灰度图像?

matlab中将灰度图转化为二值图后,有如何转化为灰度图

在 ImageMagick 命令行中将 RGB 转换为灰度

将灰度图像转换为 rgb 图像并在 matlab 中将其替换为 imread()

如何在Dart中将列表转换为地图

如何使用 CIFilter 在 Swift 中将 UIImage 转换为灰度?