如何在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
生成的L
channel 存在差异。
在Matlab中,灰度是简单实现的
0.2989 * R + 0.5870 * G + 0.1140 * B
L
是通过更复杂的方式 (see source code) 实现的,因此会给出不同的结果。
所以请根据您的需要或要求明智地选择!
【讨论】:
以上是关于如何在matlab中将L*a*b*转换为灰度的主要内容,如果未能解决你的问题,请参考以下文章