0

rgb2gray我使用Matlab将 RGB 图像(双格式)转换为相同格式的灰度图像。现在我想将相同的图像从灰色转换为 RGB。我gray2rgb在 Matlab 中使用过,但它给出了一个错误。那么我们如何使用 Matlab 将灰度图像转换为 RGB 图像呢?

4

2 回答 2

2

简短的回答:你不能。至少不完美。

正如肖恩所说,这是因为您在转换为灰度时丢失了一些信息。换句话说,从灰度转换回 RGB 是一个欠定逆问题,因此没有简单的解决方案。

现在这并不意味着你不能尝试。如果您对图像有一些先验,除了您留下的信息之外,您还可以使用它来计算原始 RGB 图像的估计值。

例如,如果您知道(或假设)原始图像已经是灰度图像(在 RGB 容器中),那么您可以完全反转该过程。这就是gray2rgb肖恩提到的功能正在做的事情。

其中大部分是开放性问题,因此可能超出您的预期。

于 2013-01-30T16:12:49.117 回答
1

我很抱歉地说这是不可能的。通过将图像转换为灰度,您减少了信息量(每个像素的 3 维降至 1)并且无法恢复。

rgb2gray函数是 Matlab 中包含的函数,并且工作正常。该gray2rgb函数不是标准的 Matlab 函数。如果您在 Matlab central 上引用此函数,则文档说明它没有做任何有用的事情,只是从 1d 矩阵创建一个 3d 矩阵;图像仍然是灰度的。

于 2013-01-30T13:47:02.143 回答