Matlab中的图像转换

时间:2013-01-30 12:57:54

标签: matlab image-processing

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

2 个答案:

答案 0 :(得分:2)

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

正如肖恩所说,这是因为你在转换为灰度时丢掉了一些信息。换句话说,从灰度转换回RGB是未确定的反问题,因此没有 easy 解决方案。

现在这并不代表你不能尝试。如果您在图像上有一些优先级,除了用于计算原始RGB图像的估计值的信息之外,您还可以使用它。

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

其中大多数是开放性问题,因此可能超出您的想要。

答案 1 :(得分:1)

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

rgb2gray函数是Matlab中包含的函数,工作正常。 gray2rgb函数不是标准的Matlab函数。如果您指的是this function on Matlab central,那么它的文档说明它没有做任何有用的事情,只是从1d矩阵创建一个3d矩阵;图像仍为灰度。