【问题标题】:How to convert a Grey Scale image to RGB in C#?如何在 C# 中将灰度图像转换为 RGB?
【发布时间】:2012-12-16 12:59:04
【问题描述】:

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

【问题讨论】:

    标签: c#


    【解决方案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 项目。它实现了尝试从灰度图像中恢复颜色的解决方案。但同样,请记住,这些颜色不会是原始颜色

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        使用 Aforge 执行此操作:

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

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

        GrayscaleToRGB 在 AForge.Imaging.Filters 中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-02-26
          • 2014-12-22
          • 1970-01-01
          • 2012-08-25
          • 2016-09-16
          • 2021-07-27
          相关资源
          最近更新 更多