灰度等级变化 - C#

时间:2018-03-17 22:44:35

标签: c# image formula grayscale

我试图将灰度位图像素转换为较低的灰度级,但我不知道用于计算它的公式的名称,也不知道它是如何工作的 - 现在我有一些看似不常见的阴影代码工作(几乎从不)正确。

图像的灰度级别从2到256不等,我需要一个公式才能轻松降级(并且像素数据的反向公式仍然在0到255之间)

非常感谢任何帮助。

以下是当前代码:

        int xIndex = 0, yIndex = 0;
        if (grayLevelPreview <= 0) return;//error- only one shade, dividing by zero calculation ahead - stop
        if (grayLevelPreview > grayLevel) grayLevelPreview = grayLevel;
        int levels = grayLevel / grayLevelPreview;
        for (int i = 0; i < dataListPreview.Count; i++)//assign each pixel data to bitmap coordinates
        {
            dataListPreview[i] /= levels;
            int grayLeveler = dataListPreview[i] * levels;

            bm.SetPixel(xIndex, yIndex, Color.FromArgb(1, grayLeveler, grayLeveler, grayLeveler));
            xIndex++;
            if (i % imgWidth == 0 && i != 0)
            {
                yIndex++;
            }
            if (xIndex == imgWidth)
            {
                xIndex = 0;
            }
        }

0 个答案:

没有答案