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

如何将灰度图像转换为C#中的RGB?,c#,C#,如何将灰度图像转换为RGB格式?我也添加了一个RGE库,但无法定义着色阈值。我不太清楚您在将灰度图像转换为RGB下的意思,并假设您正在尝试恢复颜色。不幸的是,不可能精确地做到这一点。我的意思是,你可以从灰度图像中恢复颜色,但这种颜色与转换为灰色之前的颜色不完全一样。 从颜色到灰度的标准转换假定图像的每个像素都通过公式转换: G(R,G,B) = 0.299*R + 0.587*G + 0.114*B 其中R,G和B是像素的RGB值 正如您所理解的,反向转换可能有许多不同的结果。查看以了解更多信

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

我不太清楚您在
将灰度图像转换为RGB
下的意思,并假设您正在尝试恢复颜色。不幸的是,不可能精确地做到这一点。我的意思是,你可以从灰度图像中恢复颜色,但这种颜色与转换为灰色之前的颜色不完全一样。 从颜色到灰度的标准转换假定图像的每个像素都通过公式转换:

G(R,G,B) = 0.299*R + 0.587*G + 0.114*B
其中
R
G
B
是像素的
RGB

正如您所理解的,反向转换可能有许多不同的结果。查看以了解更多信息


你们也可以看看这个项目。它实现了一个解决方案,试图从灰度图像中恢复颜色。但是,请记住,这种颜色不是原始颜色,安东有一个很好的观点,即生成的彩色图像不会具有原始图像中的颜色。 这就是为什么我认为给灰度图像着色被称为假着色的原因。 对于带有调色板的图像,您可以只替换调色板。 对于没有选项板的图像,必须定义要使用的公式。 在我们的应用程序中,我们使用了名为leadtools的sdk,该sdk具有为灰色图像着色的功能,我们发现它非常有用。

使用Forge可以做到以下几点:

var filter = new GrayscaleToRGB();
var RGBBitmap = filter.Apply(AForge.Imaging.Image.Convert16bppTo8bpp(bitmap));
(如果已经有8bpp位图,则可以省略转换)

GrayscaleToRGB位于arge.Imaging.Filters中