如何在C#中将灰度图像转换为RGB?

时间:2012-12-16 12:59:04

标签: c#

如何将灰度图像转换为RGB格式?我也添加了 Aforge 库,但无法定义着色阈值。

3 个答案:

答案 0 :(得分:1)

我不明白你在Convert gray scale image to RGB下的意思是什么,并且假设你正试图恢复颜色。不幸的是,不可能精确地做到这一点。我的意思是你可以从灰度图像中恢复颜色,但这种颜色并不完全是颜色变换为灰色。 从颜色到灰度的标准转换假定通过公式转换的图像的每个像素:

G(R,G,B) = 0.299*R + 0.587*G + 0.114*B

其中RGBRGB像素值

正如您所理解的那样,转换可能会产生许多不同的结果。查看http://en.wikipedia.org/wiki/Grayscale了解更多信息。

您还可以查看this项目。它实现了一种解决方案,试图从灰度图像中恢复颜色。但同样,请注意,这种颜色不会是原始颜色

答案 1 :(得分:0)

Anton有一个很好的观点,即生成的彩色图像不会包含原始图像中的颜色。 这就是为什么着色灰度图像被称为假色,我相信。 对于带调色板的图像,您只需更换调色板即可。 对于没有调色板的图像,您必须定义要使用的公式。 在我们的应用程序中,我们使用了名为leadtools的sdk,它具有着色灰色图像的功能,我们发现它非常有用。

答案 2 :(得分:0)

使用Aforge执行此操作:

var filter = new GrayscaleToRGB();
var RGBBitmap = filter.Apply(AForge.Imaging.Image.Convert16bppTo8bpp(bitmap));

(如果您已有8bpp位图,则可以省略转换)

GrayscaleToRGB位于AForge.Imaging.Filters