反转c中的图像强度

时间:2014-11-05 18:43:36

标签: c arrays colors invert

void invert( uint8_t array[], 
         unsigned int cols, 
         unsigned int rows )
{
    int y;
    uint8_t darkest = 255;
    uint8_t lightest = 0;
    uint8_t anygray = y;
    for (int x = 0; x < (cols*rows); x++)
    {
        for (y = 0; y < (cols*rows); y++)
        {
            if (array[x] == darkest && array[x] == anygray && array[x] == lightest)
            {
                array[x] = 255-y;
            }
        }
    }
}

我在这里有一个功能,它反转图像强度,使黑色变为白色,反之亦然,所有浅灰色变成深灰色。但我的代码似乎不起作用,我不知道我哪里出错了。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我没有原型要检查,但我发现至少有两件看起来很可疑。

1)我期待&amp;&amp;在IF中是||。

2)我期望数组[x] = 255-y类似于数组[x] = 255 - array [x]。