【发布时间】:2012-12-16 12:59:04
【问题描述】:
如何将灰度图像转换为RGB 格式?我也添加了 Aforge 库,但无法定义着色阈值。
【问题讨论】:
标签: c#
如何将灰度图像转换为RGB 格式?我也添加了 Aforge 库,但无法定义着色阈值。
【问题讨论】:
标签: c#
我不清楚你在Convert gray scale image to RGB 下是什么意思,并假设你正在尝试恢复颜色。不幸的是,不可能精确地做到这一点。我的意思是你可以从灰度图像中恢复颜色,但这种颜色并不完全是转换为灰色之前的颜色。
从彩色到灰度的标准转换假设图像的每个像素按公式转换:
G(R,G,B) = 0.299*R + 0.587*G + 0.114*B
其中R、G 和B 是RGB 像素值
正如您所理解的那样,转换可能会产生许多不同的结果。更多信息请查看http://en.wikipedia.org/wiki/Grayscale。
您也可以查看this 项目。它实现了尝试从灰度图像中恢复颜色的解决方案。但同样,请记住,这些颜色不会是原始颜色
【讨论】:
Anton 有一个优点,即生成的彩色图像不会具有原始图像中的颜色。 这就是我相信为灰度图像着色被称为伪着色的原因。 对于带有调色板的图像,您只需替换调色板即可。 对于没有调色板的图像,您必须定义一个要使用的公式。 在我们的应用程序中,我们使用了名为leadtools 的sdk,它具有为灰色图像着色的功能,我们发现它非常有用。
【讨论】:
使用 Aforge 执行此操作:
var filter = new GrayscaleToRGB();
var RGBBitmap = filter.Apply(AForge.Imaging.Image.Convert16bppTo8bpp(bitmap));
(如果您已经有 8bpp 位图,则可以省略转换)
GrayscaleToRGB 在 AForge.Imaging.Filters 中
【讨论】: