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

如何在matlab中将L*a*b*转换为灰度,matlab,image-processing,colors,color-space,lab-color-space,Matlab,Image Processing,Colors,Color Space,Lab Color Space,我已经将RGB图像转换为La*b*颜色空间,但我想将其转换为灰度。我不确定是否可以使用rgb2gray 有什么想法吗?颜色空间的L通道是灰度部分。照原样用就行了。使用rgb2gray将不能像预期的那样工作,因为它期望您作为输入提供给它的三个通道来自RGB颜色空间。如果您有CIELa*b*颜色空间表示中的图像,您可以使用Lab2RGB将其转换回RGB(可以找到)然后使用函数rgb2gray将图像转换为灰度 请注意,由rgb2gray生成的灰度图像与由RGB2Lab生成的L通道存在差异 在Matla

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


有什么想法吗?

颜色空间的
L
通道是灰度部分。照原样用就行了。使用
rgb2gray
将不能像预期的那样工作,因为它期望您作为输入提供给它的三个通道来自
RGB
颜色空间。

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

请注意,由
rgb2gray
生成的灰度图像与由
RGB2Lab
生成的
L
通道存在差异

在Matlab中,灰度是通过简单的

0.2989 * R + 0.5870 * G + 0.1140 * B 
其中,
L
是通过更复杂的方式()实现的,因此给出了不同的结果

因此,根据您的需要或要求明智地选择