我在Matlab中使用rgb2gray
将RGB图像(双格式)转换为相同格式的灰度图像。现在我想将相同的图像从灰色转换为RGB。我在Matlab中使用了gray2rgb
但是它给出了一个错误。那么我们如何使用Matlab将灰度图像转换为RGB图像呢?
答案 0 :(得分:2)
简短的回答:你做不到。至少不完美。
正如肖恩所说,这是因为你在转换为灰度时丢掉了一些信息。换句话说,从灰度转换回RGB是未确定的反问题,因此没有 easy 解决方案。
现在这并不代表你不能尝试。如果您在图像上有一些优先级,除了用于计算原始RGB图像的估计值的信息之外,您还可以使用它。
例如,如果您知道(或假设)原始图像已经是灰度(在RGB容器中),那么您可以完全反转该过程。这就是肖恩提到的gray2rgb
函数正在做的事情。
其中大多数是开放性问题,因此可能超出您的想要。
答案 1 :(得分:1)
我很遗憾地说这是不可能的。 通过将图像转换为灰度,您减少了信息量(每个像素的3个维度减少到1),这无法恢复。
rgb2gray
函数是Matlab中包含的函数,工作正常。
gray2rgb
函数不是标准的Matlab函数。如果您指的是this function on Matlab central,那么它的文档说明它没有做任何有用的事情,只是从1d矩阵创建一个3d矩阵;图像仍为灰度。